真的很急,在线等,我前三天都已经发了帖子了,但是大家不是给了一个其他思路,就是直接给我一个代码,身为蒟蒻的我虽然非常非常非常勉强的看懂了,但是我还是想知道哪里错了?(有注释)
稍稍申明一下,写这么详细(甚至里面可能有废话)不是说大家笨,是因为我笨,不知道要写到那个程度才合适,所以求大家原谅,( ̄y▽, ̄)╭

#include<bits/stdc++.h>
using namespace std;
int front=1,rear,n;
int a[1000001],s[1000001],ans[1001];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
s[i]=i;
}
rear=n;
while(front<=rear){
if(a[front]){
for(int i=front;i<=rear;i++){
ans[s[i]]++;
}
a[front]--;
a[rear++]=a[front],s[rear]=s[front];
front++;
}
else{
front++;
}
}
for(int i=1;i<=n;i++){
printf("%d ",ans[i]);
}
return 0;
}