| 比赛 |
2026.8.28 |
评测结果 |
AAAAATTTTT |
| 题目名称 |
一周一次买下同班同学的那些事 |
最终得分 |
50 |
| 用户昵称 |
yanglich |
运行时间 |
10.568 s |
| 代码语言 |
C++ |
内存使用 |
5.99 MiB |
| 提交时间 |
2026-08-28 12:20:58 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
int T,n,a[200005],ans;
vector<int>p,q;
int sum1[200005],sum2[200005];
void solve(){
cin>>n;
ans=0;
int cn1=0,cn2=0;
for(int i=1;i<=n;i++){
cin>>a[i];
sum1[i]=sum1[i-1]+a[i];
sum2[i]=sum2[i-1]+abs(a[i]);
if(a[i]>0)cn1++;
else cn2++;
}
if(cn1==n||cn2==n){
cout<<"0\n\n";
return;
}
p.clear(),q.clear();
for(int i=1;i<=n;i++){
if(a[i]<0)continue;
q.push_back(i);
if(sum2[i-1]+sum1[n]-sum1[i]-a[i]>ans){
ans=sum2[i-1]+sum1[n]-sum1[i]-a[i];
p=q;
}
if(i-1!=0)
q.push_back(i-1);
}
cout<<p.size()<<"\n";
for(int i=0;i<p.size();i++)
cout<<p[i]<<" ";
cout<<"\n";
//cout<<ans<<"\n";
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
freopen("bought.in","r",stdin);
freopen("bought.out","w",stdout);
cin>>T;
while(T--){
solve();
}
return 0;
}