#THU20201A. 思考熊的马拉松

    ID: 197 Type: Default 1000ms 512MiB Tried: 2 Accepted: 1 Difficulty: 3 Uploaded By: Tags>其他分治排序离散化数据结构树状数组清华推研机试考研环境测试

思考熊的马拉松

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

今年,nn 只思考熊参加了清华大学校园马拉松比赛,马拉松的赛道是环形的,每圈的长度是 AA,完成比赛需要跑 LL 圈。

比赛中,甲领先乙很长距离,绕过一圈或多圈后从后面追上了乙的现象叫做 “套圈”。套圈现象非常常见,例如:跑得比谁都快的 saffah 熊可以套某些熊 L1L - 1 圈;ufozgg 熊经常进行日常耐力训练,套圈次数和被套圈次数基本持平;而 Mulab 作为一只老年熊,则是被套 L1L - 1 圈的那种。

与人不同的是,思考熊在跑步时都是匀速运动,wyx 熊是这次比赛的计时员,他统计了参赛的 nn 只熊的速度 v1,v2,,vnv_1, v_2, \cdots, v_n(其中最大的一个是 saffah 熊的速度)。现在 wyx 熊希望你告诉他,当速度最快的 saffah 熊到达终点时,场上所有熊总共发生了多少次套圈现象。

注意:在 saffah 熊刚刚到达终点那一刻,如果甲恰好追上了乙,此时也算作甲将乙套圈。

输入格式

从标准输入读入数据。

输入的第一行包含 2 个整数 T,CT, C,分别表示这个测试点内数据的组数和这个测试点的编号。对于所有测试点,保证 T=10T = 10

每组数据的第一行包含 3 个正整数 n,A,Ln, A, L,分别表示思考熊的只数,跑道每圈的长度和完成比赛所需要的圈数。保证 A,L108A, L \le 10^8

第二行包含 nn 个正整数 v1,v2,,vnv_1, v_2, \cdots, v_n,表示每只思考熊的速度。保证这些数互不相同。

输出格式

输出到标准输出。

输出 TT 行,分别表示每组数据中,所有熊发生的套圈总次数。

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 熊到达终点的时间为 1000×155=3000\frac {1000 \times 15}5 = 300099 次套圈分别发生在(其中位置表示从一圈的起点出发的距离):

编号 11 22 33 44 55 66 77 88 99
时间 10003\frac {1000}3 20003\frac {2000}3 10001000 40003\frac {4000}3 50003\frac {5000}3 20002000 70003\frac {7000}3 80003\frac {8000}3 30003000
位置 20003\frac {2000}3 10003\frac {1000}3 00 20003\frac {2000}3 10003\frac {1000}3 00 20003\frac {2000}3 10003\frac {1000}3 00

对于第 2 组数据,跑得最快的 saffah 熊到达终点的时间为 1000×139=144449\frac {1000 \times 13}9 = 1444\frac 4977 次套圈分别发生在:

编号 11 22 33 44 55 66 77
时间 200200 400400 600600 800800 10001000 12001200 14001400
位置 800800 600600 400400 200200 00 800800 600600

样例中 C=0C = 0,但实际数据中的 CC 会被赋值为实际的测试点编号。

子任务

各测试点分别满足下列特征。

测试点/C/C nn \le viv_i \le max(vi)L\max(v_i)\mid L
121\sim 2 11 10610^6
343\sim 4 22
565\sim 6
787\sim 8 30003000
9109\sim 10
111211\sim 12 10510^5
131413\sim 14 10710^7
151715\sim 17 10610^6
182018\sim 20 10810^8

这些特征对同一个测试点中的全部 TT 组数据都有效。其中 viv_i 表示 nn 只熊的速度都满足的条件,max(vi)L\max(v_i)\mid L 表示跑的总圈数 LL 是最快的熊 saffah 熊的倍数。