| 比赛 |
2026.8.28 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
一周一次买下同班同学的那些事 |
最终得分 |
100 |
| 用户昵称 |
彭欣越 |
运行时间 |
0.306 s |
| 代码语言 |
C++ |
内存使用 |
4.21 MiB |
| 提交时间 |
2026-08-28 10:40:21 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=200010;
int T,n;
ll a[N],res;
vector<ll>v;
int main () {
freopen("bought.in","r",stdin);
freopen("bought.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin >> T;
while (T--) {
v.clear();
cin >> n;
ll sum=0,mx=0,id=0;
for (int i=1;i<=n;i++) {
cin >> a[i];
res+=a[i];
if (a[i]>0&&sum-2*a[i]>mx) {
mx=sum-2*a[i];
id=i;
}
if (a[i]<0) sum+=-2*a[i];
}
ll t=0,p=0;
for (int i=1;i<=id-1;i++) {
if (a[i]>0) {
if (t==0&&i!=1) p=i-1;
t++;
}else{
if (t>0) {
v.push_back(i-1);
if (p!=0) v.push_back(p);
p=0;
}
t=0;
}
}
if (p!=0) {
v.push_back(id-1);
v.push_back(p);
}
//cout << res+mx <<endl;
if (id!=0) v.push_back(id);
cout << v.size() <<"\n";
for (int i=0;i<v.size();i++) {
cout << v[i] <<' ';
}
cout <<"\n";
}
return 0;
}