我的代码:
#include<bits/stdc++.h>
#define I using
#define AK namespace
#define IOI std
#define i_ak return
#define ioi 0
#define int long long
I AK IOI;
int t;
signed main(){
cin>>t;
while(t--){
int n,m,a[100005],sum[100005],ans=0;
bool flag=0,flag2=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
sum[i]=sum[i-1]+a[i];
}
if(a[m]<0){
puts("NO");
continue;
}
for(int i=m-2;i>=0;i--)ans=max(ans,sum[m]-sum[i]);
for(int i=m-2;i>=0;i--){
if(ans+sum[m]-sum[i]<0){
flag=1;
break;
}
}
ans=0;
for(int i=m+1;i<=n;i++)ans=max(ans,sum[i]-sum[m-1]);
for(int i=m+1;i<=n;i++){
if(ans+sum[i]-sum[m-1]<0){
flag2=1;
break;
}
}
if(flag&&flag2)puts("NO");
else puts("YES");
}
i_ak ioi;
}
WA15 不知道为什么