这是代码
#include<cstdio>
using namespace std;
int main(){
int d[100005] = {0};
int n = 0,ans = 0;
scanf("%d",&n);
for(int i = 1;i <= n;i++){
scanf("%d",&d[i]);
}
//printf("%d",n);
int s = 0,l = 0,least = 100000;
int i = 0;
while(s < n){
least = 100000;
i = s;
l = 0;
while(d[s] == 0){
i++;
s++;
}
i = s;
while(d[i] > 0){
l += d[i];
if(d[i] > 0 and d[i] < least)least = d[i];
i++;
}
//printf(" %d \n",least);
if(l != 0){
for(int j = s;j < i;j++){
d[j] -= least;
//printf(" %d|",d[j]);
}
这个循环似乎结束不了导致TLE了
//printf("%d ",d[s-1]);
//printf("\n");
ans += least;
}
//printf(" %d %d %d %d nima \n ",s,i,n,d[i]);
}
printf("%d",ans);
return 0;
}
蒟蒻不知道为什么