11
2025-09-07 11:47:34
发布于:广东
#include<iostream>
#define ll long long
using namespace std;
int f(int i,int j,int a[]){
if(i > j) return -2e9;
return max(a[i],f(i+1,j,a));
}
int main(){
int t;
cin >> t;
for(int q=1;q<=t;q++){
ll n;
int a[500010]={0};
bool flag = 1;
cin >> n;
for(int i=1;i<=n;i++) cin >> a[i];
int i=1,j=1;
ll cnt=0;
while(j <= n){
if(i > j){
j = i;
cnt = a[j];
}
if(cnt <= f(i,j,a)){
flag = 0;
cout << "YES" << endl;
break;
}
else if(cnt > f(i,j,a)){
cnt -= a[i];
i++;
}
else{
j++;
cnt += a[j];
}
}
if(flag) cout << "NO" << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个