hrbust I Want Candy 2353
来源:互联网 发布:java基本语法 编辑:程序博客网 时间:2024/06/05 08:52
I Want CandyTime Limit: 1000 MSMemory Limit: 256000 KTotal Submit: 25(8 users)Total Accepted: 8(6 users)Rating: Special Judge: NoDescription
小八被拜托给参加校赛(个人赛)的同学们分发糖果,长老给了n个同学的最终得分,有以下两个要求:
每个同学都至少分得一块糖果;
对于相邻的两个同学,分数高的同学要比分数低的同学分得的糖果多。
本着不要浪费的原则,长老让小八计算出最少需要多少块糖果然后去买...
“长老分明是在考验我小叮当”,还是帮帮小八吧...555...
Input有多组输入数据,每组数据先输入一个整数n(1≤n≤105),表示有n个参加校赛的同学。接下来一行输入n个整数ai(0≤ai≤105),按顺序给出n位同学的得分。
Output对于每组输入数据,输出一个数字,表示最少需要的糖果数,每组输出占一行。
Sample Input3
1 2 2
Sample Output4
Source“科林明伦杯”哈尔滨理工大学第七届程序设计团队赛(热身)#include<iostream>#include<string>#include<string.h>#include<cstdio>#include<algorithm>using namespace std;int a[100005];int b[100005];int n;int MAx(int a,int b){ return a<b?b:a;}void init(){ for(int i=0;i<=n+1;i++) { b[i]=1; }}int main(){ while(~scanf("%d",&n)) { init(); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=n;i++) { int cnt=0; int k=i; while(a[k]>a[k+1]) { if(k<=n-1){ k++; cnt++; } else break; } if(cnt){ b[i]=MAx(b[i],cnt+1); } if(a[i]<a[i+1]) { b[i+1]=b[i]+1; } } long sum=0; for(int i=1;i<=n;i++) { sum+=b[i]; } cout<<sum<<endl; }}
阅读全文
0 0
- hrbust I Want Candy 2353
- hrbsut 2353 I Want Candy (思维题)
- I Want
- Candy I
- Candy I
- I Want to Know
- I want to cry
- I Want to Know
- nothing I want
- i want way out
- I want eating
- I want a girlfriend
- I want study
- I want money !
- I want do it ~
- What I want
- I want Reset
- I want a Gmail Invite!
- JavaScript<四>
- linux ssh无密钥登陆
- TabLayout +ViewPager+Fragment + RecycleView + webView加载本地html
- 最大连续子序列和
- CXF简介
- hrbust I Want Candy 2353
- 对话框
- 111
- 梦想还是要有的——2018
- OMP学习笔记
- 已发货未发货
- 解决ubuntu下定时任务不执行问题
- 照片的虚化处理
- android中用Fresco实现圆角图片和圆形图片