B. Rudolf and 121

题解

由于a1的值只能通过对a2的操作进行消除,所以我们可以先根据a1的值迭代出a2,a3的值,然后此时的a2,只能通过a3的操作进行消除.....以此类推,如果其中发现有ai的值<0就输出NO。

code

 

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int a[N];
int main(){
//    freopen("input.txt","r",stdin);
    int t;
    cin>>t;
    while (t--){
        int n;
        bool bol=true;
        cin>>n;
        for (int i=1;i<=n;i++) cin>>a[i];
        for (int i=2;i<=n-1;i++){
            a[i]-=2*a[i-1];
            a[i+1]-=a[i-1];
            if (a[i]<0 || a[i+1]<0){
                bol=false;
                break;
            } 
        }
        if (a[n-1]>0 || a[n]>0) bol=false;
        if (bol) cout<<"YES\n";
        else cout<<"NO\n";
    }
    return 0;
}

 

posted @ 2024-03-16 16:33  黑屿白  阅读(54)  评论(0)    收藏  举报