luogu#P1844. 阅览室
阅览室
题目描述
一个阅览室每天都要接待大批读者。阅览室开门时间是 ,关门时间是 。每位读者的到达时间都不一样,并且想要阅读的刊物不超过 本。
每位读者心里对自己想看的刊物都有一个排位,到达之后他会先去找自己最想看的刊物,如果找不到则去找其次想看的刊物。如果找不到任何他想看的刊物,他会开始等待,直到有一本以上的他想看的刊物被人放回原处。当然,他会先去拿其中自己最想看的刊物。当他看完某一本刊物后,就把它放回原处,接着去找自己没看过的最想看的刊物。如此下去,直到看完所有他想看的刊物为止。
矛盾出现在两个人同时想要拿同一本刊物的时候。阅览室为了避免读者之间出现争执,作了一个规定,读者每次在开始等待时先去服务台做一次登记。如果两个人都同时想要一本刊物,那么先登记的读者将得到这本刊物。如果两个人同时登记,那么先到达阅览室的读者将得到刊物。没得到的人就只能去找其他的刊物看。
阅览室关门时,所有读者都将被强迫离开阅览室,不再允许继续阅读。
现在阅览室想做一个统计调查,你被要求写一个程序来模拟这个过程计算出所有刊物被阅读的总次数。当某个读者开始阅读某本刊物时,该刊物的被阅读次数就加 ,无论这本刊物最后有没有被读完。
输入格式
输入包含多组测试数据。
每个测试数据开头是两个整数 和 ,分别表示图书馆关门时间和读者总数。接下来按照读者的到达时间先后依次给出了每位读者的具体描述。
每个读者描述开头是一个整数 ,表示该读者到达时间。接下来一行开头是一个整数 ,表示该读者想要看的刊物数目。之后跟着 个整数按照读者想要阅读的刊物的顺序依次给出了刊物的描述。其中第 个整数表示刊物的编号 ,第 个整数表示该读者读完这本刊物所需的时间。
输出格式
对于每个测试数据,在单独一行里输出所有刊物被阅读的总次数。
10 4
1
2 1 4 2 5
3
1 2 4
7
3 2 2 1 3 3 2
9
1 4 2
5