A22498.跑圈数

普及+/提高

USACO

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

农夫约翰让他的 n (1 <= n <= 100,000) 头牛在长度为 c 的跑道上进行跑 l 圈的比赛,所有牛从同一起点,以不同的速度开始跑。直到当跑得最快的那一头牛跑完 l 圈时,所有牛才同时停下。

约翰发现在跑圈过程中发生了几次“超越事件”。其定义是:在比赛结束前某时刻,奶牛 x 已经超越了奶牛 y 整整一圈,则称做一次“超越事件”。(注: 至少一圈 ,超越了1/2圈,或者超越了1/4圈等等都不算。且对于同一对奶牛(x,y)不会重复计算次数。)

约翰想知道比赛过程中发生了多少次“超越事件”。

输入格式

第一行:三个整数:n,l,c(1 <= l,c <= 25,000)

第二行到第 n+1 行:每行一个整数 vi ,表示奶牛i的速度(1 <= vi <= 1,000,000)

输出格式

第一行:一个整数,表示总共发生的“超越事件”的次数

输入输出样例

  • 输入#1

    4 2 100 
    20 
    100 
    70 
    1 
    

    输出#1

    4 
    

说明/提示

有 4 头奶牛在长度为 100 的圆形跑道上跑 2 圈。奶牛的速度分别为 20、100、70 和 1。

比赛持续 2 个单位的时间,因为这是最快的奶牛(奶牛 2)完成的时间。在这段时间内,有 4 个交叉事件:奶牛 2 超越奶牛 1 和 4,奶牛 3 超越奶牛 1 和 4。

首页