记录编号 |
437948 |
评测结果 |
AAAAAAATTT |
题目名称 |
[NOIP 2013]积木大赛 |
最终得分 |
70 |
用户昵称 |
Fisher. |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
3.103 s |
提交时间 |
2017-08-14 21:56:10 |
内存使用 |
1.08 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
/*
二分
*/
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+c-'0';c=getchar();}
return x*f;
}
const int maxn=100010;
int n;
int h[maxn];
int l,r;
int t[maxn];
inline int ok(){
for(int i=1;i<=n;i++){t[i]=h[i];}
int s=0;
while(true){
int pos1=1;
while(t[pos1]==0){if(pos1==n)break;if(pos1+1<=n)pos1++;}
if(pos1==n&&t[n]==0)break;
int pos2=pos1;
while(t[pos2]!=0){t[pos2]--;if(pos2==n)break;if(pos2+1<=n)pos2++;}
s++;
}
return s;
}
/*inline int erfen(){
while(l+1<r){
int m=(l+r)>>1;
if(ok(m))r=m;
else l=m;
}
if(ok(l))return l;
else return r;
}*/
int main(){
freopen("BlockNOIP2013.in","r",stdin);
freopen("BlockNOIP2013.out","w",stdout);
n=read();
//l=0x7fffffff;
for(int i=1;i<=n;i++){
h[i]=read();
/*l=min(l,h[i]);
r+=h[i];*/
}
printf("%d\n",ok());
return 0;
}