比赛 2026.8.28 评测结果 RRRRRRRRRR
题目名称 一周一次买下同班同学的那些事 最终得分 0
用户昵称 __0w0__ 运行时间 1.375 s
代码语言 C++ 内存使用 3.27 MiB
提交时间 2026-08-28 11:55:51
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n;
int a[200001],s[200001];
inline int read(){
    int x=0,f=1;
    char c=getchar();
    while(!isdigit(c))f=c=='-'?-1:0,c=getchar();
    while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return x*f;
}
vector<int>v;
signed main(){
    t=read();
    while(t--){
        n=read();
        for(int i=1;i<=n;i++){
            a[i]=read();
            s[i]=s[i-1]+a[i];
        }
        v.clear();
        int ans=s[n],js=0;
        for(int i=1;i<=n;i++){
            s[i]=s[i-1]+a[i];
            if(a[i]>0){
                a[i]=-a[i];
                int del=s[n]-s[i];
                s[i]=-s[i];
                if(ans<del+s[i])js++,v.push_back(i);
                ans=max(ans,del+s[i]);
            }
        }
        cout<<js<<'\n';
        for(auto i:v){
            cout<<i<<' ';
        }
        cout<<'\n';
    }
    return 0;
}