#P1055. BULK MAILING
BULK MAILING
描述
一个想要进行大规模邮寄的组织可以通过遵循美国邮政服务关于批量邮寄的规则来节省邮资。按邮政编码顺序排列的信件被捆绑成每包 10 到 15 封信。捆绑的信件可以是邮政编码的 5 位数字都相同的(5 位邮编捆绑),也可以是邮政编码的前 3 位数字相同的(3 位邮编捆绑)。如果组成任何一种类型捆绑的信件数量少于 10 封,这些信件将按一类邮件(平信)邮寄。
输入
你需要编写一个程序来读取一个 5 位邮政编码的数据集,每行一个邮政编码,直到输入结束。你的程序应该统计 5 位邮编捆绑的数量、3 位邮编捆绑的数量以及按一类邮件邮寄的信件数量。你应该首先尽可能多地将信件组合成 5 位邮编捆绑,然后尽可能多地组合成 3 位邮编捆绑,且 10 到 15 封信的捆绑数量应尽可能少。例如,如果有 31 封邮编相同的信件,它们必须正好组合成三个 5 位邮编捆绑。
并非数据集中的所有邮政编码都是有效的。有效的邮政编码恰好由 5 位数字(0 - 9)组成,且所有数字不能全为 0。不允许有非数字字符。在你的输出末尾,打印找到的无效邮政编码。(重复的无效邮编只需打印一次)
输出
打印一份报告,首先列出 5 位邮编捆绑,包括每个邮编的信件数量和捆绑数量。接下来列出所有 3 位邮编捆绑以及相同的两个计数(信件数量和捆绑数量),然后列出所有未捆绑并按一类邮件发送的邮政编码。最后打印信件总数和捆绑总数,接着是无效邮政编码的数量以及这些无效邮编的列表。报告中各部分之间用单个空格分隔,在标题后、总数行前以及三类邮政编码之间打印空行。对于 3 位邮编捆绑,以 dddxx 的形式打印邮政编码,其中 ddd 表示三位有效数字,xx 表示省略的后两位数字。你的输出应该与示例输出类似。
95864
95864
95864
95867
95920
9j876
95616
95616
95747
95814
95818
95818
8976
95818
95818
95819
95819
00000
95819
95819
95819
95819
95819
95825
95825
95825
95825
95825
95826
95826
95826
95826
95826
95827
8976
95833
95833
95833
95833
95819
95819
95819
95819
95833
95833
95833
95864
95864
95864
123456
95864
95864
95864
ZIP LETTERS BUNDLES
95819 11 1
95864 10 1
958xx 25 2
95616 2 0
95747 1 0
95920 1 0
TOTALS 50 4
INVALID ZIP CODES
9j876
8976
00000
123456
提示
你可以将示例输出复制到记事本中,这样你就能看到输出的真实格式。
来源
太平洋西北地区 1998 年