#P2563. Demerit Points
Demerit Points
描述
在我们西边有一个省份,这里暂不提及它的名字,但它的名字不是以、或开头。该省有一套独特的驾照扣分和加分系统。这个系统大致是这样运作的:
新司机初始时既没有加分也没有扣分。当司机因驾驶违规被定罪时,根据违规的严重程度,会被扣除到分。
如果司机连续两年没有违规且没有扣分,每满两年可获得一个加分,最多可获得五个加分。每个加分可以抵消最多两个扣分。如果之后又发生违规,当扣分数量超过加分数量的两倍时,扣分数量会减少两倍的加分数量,同时加分数量清零。如果之后发生违规,且扣分数量小于等于加分数量的两倍,扣分数量会被减为,加分数量会减少扣分数量的一半,任何分数部分的加分将被舍去。
只要司机有一年没有任何驾驶违规行为,扣分就会减少。扣分减少的幅度是扣分数量的一半或者分,取两者中减少幅度更大的那个。任何分数部分或负的扣分将被舍去。这种扣分减少会在最近一次违规的每一周年进行,直到扣分全部消除。
如果在扣分减少或加分获得的同一天发生新的违规,在给予新的扣分之前先进行扣分减少或加分操作。
你的任务是读取一组司机的信息记录,并打印在任何给定时间的加分或扣分数量。
输入
输入的第一行包含驾照的颁发日期(格式为)。后续行按时间顺序包含违规信息。每行包含违规日期()和扣分数(一个介于到之间的整数)。
输出
在驾照颁发当天,以及每次加分或扣分数量发生变化时,按照以下格式输出一行,包含日期和分数。当在最后一次违规之后累计获得个加分时,输出结束。
输入样例 1
19820508
19830606 2
19830607 2
19891212 15
输出样例 1
1982-05-08 No merit or demerit points.
1983-06-06 2 demerit point(s).
1983-06-07 4 demerit point(s).
1984-06-07 2 demerit point(s).
1985-06-07 No merit or demerit points.
1987-06-07 1 merit point(s).
1989-06-07 2 merit point(s).
1989-12-12 11 demerit point(s).
1990-12-12 5 demerit point(s).
1991-12-12 2 demerit point(s).
1992-12-12 No merit or demerit points.
1994-12-12 1 merit point(s).
1996-12-12 2 merit point(s).
1998-12-12 3 merit point(s).
2000-12-12 4 merit point(s).
2002-12-12 5 merit point(s).
题目来源
滑铁卢地区竞赛