时间限制: 1.0 秒
空间限制: 512 MB
题目描述
今年,n 只思考熊参加了清华大学校园马拉松比赛,马拉松的赛道是环形的,每圈的长度是 A,完成比赛需要跑 L 圈。
比赛中,甲领先乙很长距离,绕过一圈或多圈后从后面追上了乙的现象叫做 “套圈”。套圈现象非常常见,例如:跑得比谁都快的 saffah 熊可以套某些熊 L−1 圈;ufozgg 熊经常进行日常耐力训练,套圈次数和被套圈次数基本持平;而 Mulab 作为一只老年熊,则是被套 L−1 圈的那种。
与人不同的是,思考熊在跑步时都是匀速运动,wyx 熊是这次比赛的计时员,他统计了参赛的 n 只熊的速度 v1,v2,⋯,vn(其中最大的一个是 saffah 熊的速度)。现在 wyx 熊希望你告诉他,当速度最快的 saffah 熊到达终点时,场上所有熊中总共发生了多少次套圈现象。
注意:在 saffah 熊刚刚到达终点那一刻,如果甲恰好追上了乙,此时也算作甲将乙套圈。
输入格式
从标准输入读入数据。
输入的第一行包含 2 个整数 T,C,分别表示这个测试点内数据的组数和这个测试点的编号。对于所有测试点,保证 T=10。
每组数据的第一行包含 3 个正整数 n,A,L,分别表示思考熊的只数,跑道每圈的长度和完成比赛所需要的圈数。保证 A,L≤108。
第二行包含 n 个正整数 v1,v2,⋯,vn,表示每只思考熊的速度。保证这些数互不相同。
输出格式
输出到标准输出。
输出 T 行,分别表示每组数据中,所有熊发生的套圈总次数。
4 0
2 1000 15
2 5
2 1000 13
9 4
5 1000 10
8 10 2 5 6
5 1000 17
8 10 2 5 7
9
7
38
61
样例 1 解释
对于第 1 组数据,跑得最快的 saffah 熊到达终点的时间为 51000×15=3000,9 次套圈分别发生在(其中位置表示从一圈的起点出发的距离):
| 编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
| 时间 |
31000 |
32000 |
1000 |
34000 |
35000 |
2000 |
37000 |
38000 |
3000 |
| 位置 |
32000 |
31000 |
0 |
32000 |
31000 |
0 |
32000 |
31000 |
0 |
对于第 2 组数据,跑得最快的 saffah 熊到达终点的时间为 91000×13=144494,7 次套圈分别发生在:
| 编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
| 时间 |
200 |
400 |
600 |
800 |
1000 |
1200 |
1400 |
| 位置 |
800 |
600 |
400 |
200 |
0 |
800 |
600 |
样例中 C=0,但实际数据中的 C 会被赋值为实际的测试点编号。
子任务
各测试点分别满足下列特征。
| 测试点/C |
n≤ |
vi≤ |
max(vi)∣L |
| 1∼2 |
1 |
106 |
否 |
| 3∼4 |
2 |
是 |
| 5∼6 |
否 |
| 7∼8 |
3000 |
| 9∼10 |
是 |
| 11∼12 |
105 |
| 13∼14 |
107 |
| 15∼17 |
106 |
否 |
| 18∼20 |
108 |
这些特征对同一个测试点中的全部 T 组数据都有效。其中 vi 表示 n 只熊的速度都满足的条件,max(vi)∣L 表示跑的总圈数 L 是最快的熊 saffah 熊的倍数。