自行车比赛(AHOI2016初中组T1)
来源:互联网 发布:python split去除空格 编辑:程序博客网 时间:2024/04/28 08:08
【题目描述】
小雪非常关注自行车比赛,尤其是环滨湖自行车赛。一年一度的环滨湖自行车赛,需要选手们连续比赛数日,最终按照累计得分决出冠军。今年一共有 N 位参赛选手。每一天的比赛总会决出当日的排名,第一名的选手会获得 N 点得分,第二名会获得 N-1 点得分,第三名会获得 N-2 点得分,依次类推,最后一名会获得 1 点得分。保证没有选手会排名相同。
在之前的数日较量中, N 位选手已经分别累计了一些分数。现在即将开始的是最后一天的比赛。小雪希望知道有多少位选手还有可能获得最终的冠军,也就是说还有多少选手有可能通过最后一天的比赛获得累计总分第一名。
【输入格式】
第一行输入一个整数 N,表示参赛选手总数,保证 3<=N<=300000。
之后 N 行,其中第 i 行输入一个整数 B[i]表示第 i 位选手已经获得的累计分数,满足0<=B[i]<=2000000。
【输出格式】
输出只有一行,只输出一个整数,表示有多少位选手有可能获得最终的冠军。
【样例输入】
3
8
10
9
【样例输出】
3
【数据范围】
3<=N<=300000 且 0<=B[i]<=2000000。
【分析】
单调队列模拟下就好。
var i,n,p,q:longint; a:array[0..300001]of longint;procedure qsort(l,r:longint);var i,j,mid,tmp:longint;begin i:=l;j:=r; mid:=a[(l+r) div 2]; repeat while a[i]<mid do inc(i); while a[j]>mid do dec(j); if i<=j then begin tmp:=a[i];a[i]:=a[j];a[j]:=tmp; inc(i);dec(j); end; until i>j; if l<j then qsort(l,j); if i<r then qsort(i,r);end;begin readln(n); for i:=1 to n do readln(a[i]); qsort(1,n); a[0]:=maxlongint; q:=n; for p:=1 to n-1 do begin while a[q]+n-q+1<=a[p]+n do dec(q); if q<p then break; end; write(n-p+1);end.
3 0
- 自行车比赛(AHOI2016初中组T1)
- 洛谷 P2777 [AHOI2016初中组] 自行车比赛
- 洛谷 P2777 [AHOI2016初中组]自行车比赛
- 洛谷 P2777 [AHOI2016初中组]自行车比赛
- 迷宫(AHOI2016初中组T3)
- AHOI 2016初中组 自行车比赛
- 【学术篇】luogu2778 [AHOI2016初中组]迷宫(代码高能!)
- 自行车比赛
- Vijos P1988 自行车比赛(treap)
- NOIP模拟(10.30)T1 比赛
- NOIP模拟(20171030)T1 比赛
- Vijos P1988 自行车比赛
- 【NOIP模拟】 (10.30) T1 比赛
- [NOIP模拟][简单]T1-举办比赛
- AHOI2016 迷宫
- AHOI2017初中组题解
- 【汕头市选2012初中组】求和(sum)(jzoj)
- 汕头市选2012初中组 数数(count) (jzoj)
- android 仿qq电话的推送是怎么实现的,还请那位大牛,提供点参考资料或思路
- ZCMU-1315-孙子算经
- AsyncHttpClient RequestParams怎么封装下面格式的json
- FragmentManager在Activity重建后,add的fragment消失,救命
- 关于Android新浪微博分享问题
- 自行车比赛(AHOI2016初中组T1)
- Android Studio2.0的instant run要求Enable ADB integration,点击后DDMS就被强制断开了
- 关于内存管理引用计数与变量生命周期的关系
- 基础5
- Android 分享功能
- Adroid版本更新之后覆盖安装更新界面不见了?
- achartengine图形处理问题
- 有没有代码可以判断一个List<View>集合里的view是什么view
- NOIP2014 提高组 复赛 day1 rps 生活大爆炸版石头剪刀布