Codeforces Round #703 (Div. 2)-A题

Codeforces Round #703 (Div. 2)-A题_第1张图片
Codeforces Round #703 (Div. 2)-A题_第2张图片
因为题目问的是能否构成严格递增,从前往后模拟,令第i个堆的高度为hi,因为只能从前一个抽出来给后一个,所以如果中途中有构不成相应高度的情况直接break

#include
using namespace std;
int main(){
     
    int t;
    cin>>t;
    while(t--){
     
        int n;
        cin>>n;
        long long  h[150];
        long long res=0;
        bool flag=1;
        for(int i=0;i<n;i++){
     
            cin>>h[i];
        }
        for(int i=0;i<n;i++){
     
            res+=h[i]-i;
            if(res<0){
     
                flag=0;
                break;
            }
        }
        if(!flag) cout<<"NO"<<endl;
        else cout<<"YES"<<endl;
    }
    return 0;
}

你可能感兴趣的:(算法,c++)