记录编号 437948 评测结果 AAAAAAATTT
题目名称 [NOIP 2013]积木大赛 最终得分 70
用户昵称 GravatarFisher. 是否通过 未通过
代码语言 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;
}