比赛 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; 
}