记录编号 81860 评测结果 AAAAAAAAAA
题目名称 [NOIP 2013]积木大赛 最终得分 100
用户昵称 Gravatarcstdio 是否通过 通过
代码语言 C++ 运行时间 0.023 s
提交时间 2013-11-18 22:12:19 内存使用 0.70 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iomanip>
#include<algorithm>
using namespace std;
const int SIZEN=100001;
int h[SIZEN]={0};
int n;
class COUPLE{
public:
	int lh,rh;
	int opn;//操作数
};
COUPLE DP(int left,int right){
	if(left==right){
		return (COUPLE){h[left],h[left],h[left]};
	}
	int mid=(left+right)>>1;
	COUPLE lf,rf;
	lf=DP(left,mid);
	rf=DP(mid+1,right);
	COUPLE now;
	now.lh=lf.lh,now.rh=rf.rh;
	now.opn=lf.opn+rf.opn-min(lf.rh,rf.lh);
	return now;
}
void read(void){
	scanf("%d",&n);
	int i;
	for(i=1;i<=n;i++) scanf("%d",&h[i]);
}
int main(){
	freopen("BlockNOIP2013.in","r",stdin);
	freopen("BlockNOIP2013.out","w",stdout);
	read();
	COUPLE ans=DP(1,n);
	printf("%d\n",ans.opn);
	return 0;
}