P3054 [USACO12OPEN] Running Laps S

题目描述

农夫约翰让他的 $n$($1 \le n \le 10^5$)头牛在长度为 $c$ 的跑道上进行跑 $l$ 圈的比赛,所有牛从同一起点,以不同的速度开始跑。直到当跑得最快的那一头牛跑完 $l$ 圈时,所有牛才同时停下。 约翰发现在跑圈过程中发生了几次“超越事件”。其定义是:在比赛结束前某时刻,奶牛 $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$ 各一次。