题意
n个数字分给两个人,使得A得到的数字和大与B得到的数字和,输出A的得到的数字的下标(任意解且顺序随意),如果无解输出-1。
思路
直接把最小的给B,其他的全给A。
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 505;
const int INF = 0x3f3f3f3f;
int n, MIN, pos, sum;
int main()
{
scanf("%d", &n);
MIN = INF;
for (int i = 1; i <= n; i++)
{
int t; scanf("%d", &t);
sum += t;
if (t < MIN)
{
pos = i;
MIN = t;
}
}
if (sum - MIN <= MIN) { printf("-1\n"); return 0; }
printf("%d\n", n-1);
for (int i = 1; i <= n; i++) if (i != pos) printf("%d ", i);
return 0;
}
/*
3
1 2 1
*/