求Hack
查看原帖
求Hack
663195
Z_AuTwT楼主2024/7/13 08:49
#include<bits/stdc++.h>
using namespace std;
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        bool flag=true;
    	int n;
    	scanf("%d",&n);
    	long long sum=0,Maxn=-(1<<63)+1;
    	for(int i=1;i<=n;i++){
    		long long x;
    		scanf("%lld",&x);
    		Maxn=max(Maxn,x);
    		if(sum+x>Maxn){
    			puts("NO");
    			flag=false;
    			break;
    		}
    		sum+=x;
    		if(sum<0){
    			sum=0;
    			Maxn=-1e18;
    		}
    	}
    	if(flag) puts("YES");
    }
	return 0;
}

线性时间复杂度

2024/7/13 08:49
加载中...