博爱小学举办书法大赛,学校一共收到了 N 个同学的作品,并给作品编号 1 \sim N。
这 N 幅作品被放到了学校的展厅展览,并请全校同学进行公开投票。投票结束,学校收到了 M 张投票,每张投票投给了 1 幅参赛的作品;学校预计评比出一等奖、二等奖、三等奖 各 1 名;
由于可能存在多个优秀作品得票数相同的情况,因此最终实际获奖名额可能会比预计多,这种情况下,学校会增加相应奖项等级的获奖名额。
比如,如果有 3 位同学得票数并列第 1,这种情况学校会颁发出 3 个一等奖。
请编程统计出一等奖、二等奖、三等奖获奖作品的编号。
第 1 行读入 2 个整数 N 和 M,分别代表参赛作品的数量和投票的数量;
第 2 行读入 M 个整数,第 i 个整数 A_i 代表了第 i 张投票投给了编号为 A_i 的作品。
输出 3 行,每行输出若干整数,用空格隔开;
第 1 行输出一等奖获奖作品的编号,第 2 行输出二等奖获奖作品的编号,第 3 行输出三等奖获奖作品的编号;
如果某个奖项有多个作品获得,那么该奖项的获奖作品编号按照编号值从小到大的顺序输出。
8 15 3 3 3 4 4 4 6 6 8 8 7 7 5 1 2
3 4 6 7 8 1 2 5
10 16 6 5 7 2 2 1 1 7 4 2 2 7 7 2 4 4
2 7 4
3 号作品和 4 号作品各获得 3 票,并列第 1,评选为一等奖;
6 号作品、8 号作品、7 号作品各获得 2 票,并列第 2 ,评选为二等奖;
5 号作品、1 号作品、2 号作品各获得 1 票,并列第 3 ,评选为三等奖;
对于 100\% 的数据,6 \le N,M \le 100000,1 \le A_i \le N;
测试数据确保统计后一等奖、二等奖、三等奖至少各有 1 人。
东方博宜OJ月赛