题目描述
给你一个正整数序列a1, a2, ..., an.,找出所有的i, 满足第i个数是其他所有数的平均数。
输入
第一行是一个正整数T,表示测试用例个数。每个测试用例的第一行是一个正整数n(2 ≤ n ≤ 2·105)。第二行是n个正整数a1, a2, ..., an (1 ≤ ai≤ 1000)。
输出
对于每组测试用例,第一行输出满足条件的数的个数,第二行输出所有满足条件的数的编号(两编号之间用一个空格隔开),编号为从1到n的正整数。
如果不存在满足条件的数,输出一个0,不用输出第二行。
样例输入
341 309 455 12751 2 3 4 5450 50 50 50
样例输出
01341 2 3 4
提示
Append Code
&&&&
#include<stdio.h>
#include<math.h>
#define MAX 200006
int main()
{
int t, n, i, j, k, a[MAX], b[MAX], f =0, sum, average;
scanf("%d", &t);
for(i = 1; i <= t; i++)
{
sum = 0;
f = 0;
scanf("%d", &n);
for(j = 1; j <= n; j++)
{
scanf("%d", &a[j]);
sum += a[j];
}
for(j = 1; j <= n; j++)
{
average = 0;
if((sum - a[j]) % (n - 1) == 0)/*必须判断平均值为整数*/
{
average = (sum - a[j]) / (n - 1);
if(average == a[j])
{
b[f] = j;
f++;
}
}
}
printf("%d\n", f);
if(f != 0)
{
for(i = 0; i < f; i++)
{
if(i == 0)
printf("%d", b[i]);
else
printf(" %d", b[i]);
}
printf("\n");
}
}
}