题目大意
有n堆积木,我们可以将第i堆积木移动到第i+1堆中,是否可以让这n堆积木严格递增
题解
我们可以直接记录第1堆大于0的数量,然后是第2堆大于1的数量…如果第i堆数量小于i-1,就将之前记录的多余的数量补上来,如果还是不够就证明无法严格递增
#include<cstdio>
int main(){
long long t,n,a,sum;
bool flag;
scanf("%lld",&t);
while(t--){
sum=0;
scanf("%lld",&n);
flag=1;
for(long long i=0;i<n;i++){
scanf("%lld",&a);
sum+=a-i;
if(sum<0){
flag=0;
}
}
if(flag){
printf("YES\n");
}else{
printf("NO\n");
}
}
}