A85889.「TJOI2019」甲苯先生的滚榜
省选/NOI-
通过率:0%
时间限制:10.00s
内存限制:1024MB
题目描述
甲苯先生在制作一个 Online Judge,他发现做比赛的人们很关心自己的排名(显而易见)。
在 ACM 赛制的比赛中,如果通过题目数量不相等,则通过题目数量多的人排名更靠前;
如果通过题目数量相等,则罚时更少的人排名更高。
甲苯先生想让大家帮忙设计一个程序,每次有人通过之后,就告诉他排名在他的前面有多少人。
(不包括和他罚时题数都相同的同学)
输入格式
第一行输入一个整数 T 表示测试样例的个数。
对于每一个样例,输入三个整数 m,n,seed。
m 表示参赛总人数(编号 1∼m),n 表示一共有 n 次 AC(假设 AC 已经去重,即不存在相同人的相同题目提交)。
seed 表示生成数据的种子。
接下来要求同学们使用之下的函数生成数据:
typedef unsigned int ui ;
ui randNum( ui& seed , ui last , const ui m){
seed = seed * 17 + last ; return seed % m + 1;
}
(last 为上一次输出的结果,在没有输出结果时 last=7,多组数据时 last 不需要重新赋值)
要求每次生成两个数据 Ria,Rib,表示第 Ria 个人 AC 了一道题目,他的罚时为 Rib。
(也就是说 Ria 的题目数量 +1,罚时长度 +Rib)。
要求一共生成 n 组数据,代表一共有 n 次提交。
对于所有数据,保证罚时总和不超过 1.5×106。
输出格式
每次提交输出一行整数,表示在第 Ria 个人 AC 后,比 Ria 成绩高的有多少个选手。
输入输出样例
输入#1
1 7 3 1
输出#1
0 1 0
说明/提示
| 测试点 | 1,2 | 3,4 | 5 | 6,7,8 | 9,10 |
|---|---|---|---|---|---|
| T | ≤10 | ≤5 | ≤15 | ≤5 | ≤5 |
| m | ≤1000 | ≤10000 | ≤105 | ≤104 | ≤105 |
| n | ≤1000 | ≤10000 | ≤105 | ≤106 | ≤106 |