版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39396954/article/details/84197812
传送门:http://codeforces.com/contest/1077/problem/C
吐槽:忘记特判2的情况被hack了,肥宅大哭.jpg
代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
#include<iostream>
#include<map>
#include<vector>
#include<set>
#include<queue>
using namespace std;
typedef long long ll;
const ll maxv=2e5+5;
struct node
{
ll a,id;
}q[maxv];
bool cmp(node a,node b)
{
return a.a>b.a;
}
vector<ll>ans;
int main()
{
ll n;
scanf("%lld",&n);
ll sum=0;
for(ll i=0;i<n;i++)
{
scanf("%lld",&q[i].a);
sum+=q[i].a;
q[i].id=i;
}
if(n==2)
{
printf("0\n");
return 0;
}
ll flag=0;
sort(q,q+n,cmp);
ll maxx=q[0].a;
ll maxx2=q[1].a;
sum-=maxx;
for(ll i=1;i<n;i++)
{
if(sum-q[i].a==maxx)
{
ans.push_back(q[i].id);
flag=1;
}
}
if(sum-maxx2==maxx2)
{
flag=1;
ans.push_back(q[0].id);
}
printf("%d\n",ans.size());
for(ll i=0;i<ans.size();i++)
{
printf("%lld",ans[i]+1);
if(i!=ans.size()-1)
{
printf(" ");
}
}
puts("");
return 0;
}