P2280学妹奖学金 | |
|
问题描述
NK中学的电竞社(电脑竞赛社)有n(n<=50000)个同学,编号1到n。往届的学长们设立了“学妹奖学金”,电竞社每月都会举行一场编程比赛,每次比赛中没有得过奖学金的学生中得分最高的同学将会获得“学妹奖学金”。因为奖学金的总金额有限,所以每个同学最多只能获得一次“学妹奖学金”,也就意味着如果一个同学得过“学妹奖学金”了,那么下一次比赛即使他拿的最高分也不能再得一次。
到目前为止,比赛总共举办了m(m<=500)场,请找出每场比赛后,获得“学妹奖学金“的人数。
电竞社社长只张贴出了第一场比赛所有同学的得分情况。以后的每场比赛,只张贴成绩发生变化的同学的成绩,也就是如果一个同学的第i场比赛成绩和第i-1场相同,那么第i场比赛结束后他的成绩将不会被张贴出来。
输入格式
第一行,两个整数n和m。
第二行,n个空格间隔的整数,表示第一场比赛后编号1到n的学生的成绩(0<=成绩<=100000000)。
接下来描述后m-1场比赛的情况,对于每场比赛:
第一行,一个整数k和t,表示与上一场相比,有k个同学的成绩发生了变化,并且t个新同学加入电竞社并参加了这场比赛(0<=k<=100,t<=100)
接下来k行,每行两个整数x和y,x表示发生变化的学生的编号,y表示该同学在该场比赛的成绩。
接下来t行,每行两个整数x和y,x表示新加入的同学的编号,y表示该同学在该场比赛的成绩。
输出格式
m行,每行一个整数。第i个整数表示第i场比赛后获得奖学金的人数。
注意:如果所有人都获过奖输出0
样例输入
7 3
89 92 35 76 23 51 88
2 1
3 90
5 80
8 90
1 2
1 60
9 88
10 88
样例输出
1
2
3
提示
第一场,最高分是2号同学92分
第二场,得奖学金的是3号和新加入的8号,90分。最高分2号92分已经得过奖学金了,所以不再考虑
第三场,得奖学金的是7号、9号和10号,得分88,这三个是没得过奖学金的学生中得分最高的。
堆练习,注意细节