@吴梓峤 有呀,我写了呀
在哪?
@吴梓峤 这不是写了两个for循环码?一个是向左走,一个是向右走呀
那你是分开的
我这种情况是先往左再往右
@吴梓峤 我不是写了吗?我写了你让我删掉那一段呀
截图给我康康
@吴梓峤 就是你让我删掉的那一段呀
那你加上吧
但你的代码肯定有问题
@吴梓峤 这是现在的代码:
#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--){
if(ans+sum[m]-sum[i]<0){
flag=1;
break;
}
}
for(int i=m+1;i<=n;i++)ans=max(ans,sum[i]-sum[m-1]);
ans=0;
for(int i=m+1;i<=n;i++){
if(ans+sum[i]-sum[m-1]<0){
flag2=1;
break;
}
}
for(int i=m-2;i>=0;i--)ans=max(ans,sum[m]-sum[i]);
if(flag&&flag2)puts("NO");
else puts("YES");
}
i_ak ioi;
}
WA20
你这加了跟没加一样
算了,明天再搞,我睡了
不,你@我干嘛?我对单调栈单调队列的掌握很差很差
@360病毒 @ 你来,教你单调栈,单调队列(
。。。。。。。。。1
没有,我没背下来匆匆
@2345安全卫士 我还没有开始写 qwq
e,你被下俩匆匆了吗