P3054 [USACO12OPEN] Running Laps S

题目描述

农夫约翰让他的 $n$($1 \le n \le 10^5$)头牛在长度为 $c$ 的跑道上进行跑 $l$ 圈的比赛,所有牛从同一起点,以不同的速度开始跑。直到当跑得最快的那一头牛跑完 $l$ 圈时,所有牛才同时停下。 约翰发现在跑圈过程中发生了几次“超越事件”。其定义是:在比赛结束前某时刻,奶牛 $x$ 已经超越了奶牛 $y$ **整整一圈**,则称做一次“超越事件”。(注:**至少一圈**,超越了 $\frac{1}{2}$ 圈,或者超越了 $\frac{1}{4}$ 圈等等都不算。且对于同一对奶牛 $(x,y)$ 不会重复计算次数。) 约翰想知道比赛过程中发生了多少次“超越事件”。 (注:可能原文章表达有误或某些其他原因,各种翻译方式过来的题意都有问题,给人误导很大,这里是根据题目数据和样例解释写的正确的题意,而不是原文)

输入格式

第一行:三个整数:$n,l,c$($1 \le l,c \le 25,000$)。 第二行到第 $n+1$ 行:每行一个整数 $v_i$,表示奶牛 $i$ 的速度($1 \le v_i \le 10^6$)。

输出格式

第一行:一个整数,表示总共发生的“超越事件”的次数。 感谢@远藤沙椰 提供的翻译

说明/提示

比赛持续 $2$ 单位时间。 比赛期间,奶牛 $2$ 超越奶牛 $1,4$ 各一次,奶牛 $3$ 超越奶牛 $1,4$ 各一次。