提交时间:2021-07-24 20:28:16

运行 ID: 22287

#include<bits/stdc++.h> using namespace std; int n,i,j,k,s,sum; int a[100002]; int minn=99999; int p; void dfs1(int f,int e) { s=0; minn=99999; for(i=f;i<=e;i++) { if(a[i]==0) { s++; } } if(s==e-f+1) { return ; } for(i=f;i<=e;i++) { minn=min(minn,a[i]); }sum+=minn; for(i=f;i<=e;i++) { a[i]=a[i]-minn; } for(i=f;i<=e;i++) { if(a[i]==0) { p=i; break; } } dfs1(f,p-1); dfs1(p+1,e); } int main() { scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } dfs1(1,n); cout<<sum<<endl; return 0; }