大水题。
求个平均数,要是平均数不是整数直接输出0,然后在数列里面刷一遍,记录下每个满足条件的数字的编号,输出,OK。
这题也纠结了一下。(我真是太水了。)输出格式上说如果没有就输出0,不用再输一个空行,英语不好直接有道,有道给我的翻译是可以输一个空行,结果一直WA。英语果然很重要啊,英语硬伤,无力吐槽。。。
#include <cstdio>
#include <cstdlib>
#include <iostream>
int num[200100];
int ans[200100];
int n,t,sum,ave;
int main()
{
scanf("%d",&n);
for (int k = 1 ; k <= n ; k ++)
{
sum = 0;
memset(num,0,sizeof(num));
memset(ans,0,sizeof(ans));
scanf("%d",&t);
for (int i = 1 ; i <= t ; i ++)
{
scanf("%d",&num[i]);
sum += num[i];
}
ave = sum / t;
if (sum % t != 0) {
printf("0\n");
continue;
}
for (int i = 1 ; i <= t ; i++)
{
if (num[i] == ave) {
ans[0]++;
ans[ans[0]] = i;
}
}
printf("%d\n",ans[0]);
if (ans[0] == 0) {
//printf("\n");
continue;
}
if (ans[0] == 1) {
printf("%d\n",ans[1]);
continue;
}
for (int i = 1 ; i < ans[0] ; i ++)
printf("%d ",ans[i]);
printf("%d\n",ans[ans[0]]);
}
return 0;
}