某学会下属的各个专业委员会经常需要改选或补选,因此希望开发一个选票统计系统。
一次选举最多有10组选票,每组用于一个委员会的选举。一个组内的所有选票都在第61至80列穿有该委员会的名字,以及该委员会候选人的名字。每个委员会最多可有25名候选人。选举人欲投某候选人的票,就在选票的第21至45列(对应候选人1~25号)的相应列上穿一个减号。一张选票上允许有多个减号,因为一个委员会可能有多个空缺名额。一包选票由若干张选票组成(一个委员会一张)。选举人每人一包选票,穿好记号后交给系统去统计票数。系统首先读入基本信息(委员会名、候选人数、该委员会需补选的人数),然后读入一张选票。若选票无效时则打印出选票内容。继续下一张选票的读取;若选票有效则处理该选票,然后继续下一张选票的读取。选票全部处理完后,打印出每个委员会的每名候选人的得票数。
选票的有效性判断步骤如下:
① 核对委员会名字(61至80列),若有此名则继续;
② 检查21至45列,若只有减号或空白,则继续;
③ 检查在最后一个候选人后面还有无记号,若无则继续;
④ 统计选票上记号的总数,若不超过允许的记号数,则此张选票有效。
若上述4项有一项不合格,则此张选票无效。