【发布时间】:2009-10-16 13:49:18
【问题描述】:
一个班级去学校旅行。而且,像往常一样,所有 N 个孩子的背包里都塞满了糖果。但很快争吵开始了,因为一些孩子比其他孩子多。很快,老师意识到他必须插手:“大家听好!把你们所有的糖果都放在这张桌子上!”
很快,老师的桌子上多了一大堆糖果。 “现在,我将糖果分成N等份,每个人都会得到一份。”宣布老师。
“等等,这真的可能吗?”想知道一些更聪明的孩子。
问题说明
给你每个孩子带来的糖果数量。看看老师是否能把糖果分成N个完全相等的堆。 (就本任务而言,所有糖果都是同一类型。)
输入规范
输入文件的第一行包含一个整数 T,指定测试用例的数量。每个测试用例前面都有一个空行。
每个测试用例如下所示: 第一行包含 N :孩子的数量。接下来的 N 行中的每一行都包含一个孩子带来的糖果数量。
输出规格
对于每个测试用例,如果糖果可以平均分配,则输出一个带有单个单词“YES”的单行,否则输出“NO”。
示例
输入:
2 5 5 2 7 3 8 6 7 11 2 7 3 4输出:
YES NO
问题很简单,但情况是 SPOJ 法官使用的输入非常非常大。我使用unsigned long long 作为数据类型,但它显示 wc..
这是我的代码:
#include<iostream>
using namespace std;
int main()
{
unsigned long long c=0,n,k,j,testcases,sum=0,i;
char b[10000][10];
cin>>testcases;
while(testcases-->0)
{
sum=0;
cin>>n;
j=n;
while(j-->0)
{
cin>>k;
sum+=k;
}
if(sum%n==0)
{
b[c][0]='Y';b[c][1]='E';b[c][2]='S';b[c][3]='\0';
c++;
}
else
{
b[c][0]='N';b[c][1]='O';b[c][2]='\0';
c++;
}
}
for(i=0;i<c;i++)
cout<<"\n"<<b[i];
return 0;
}
【问题讨论】:
-
您是如何使用 unsigned long long 实现的?
-
在文件大小的情况下大还是在数据类型的情况下大?
-
@vaibhav- 输入的是文件还是 cin 语句?
-
大是输入..它们不包括文件..我们必须从用户那里获取输入..
-
那些是幸运的孩子... 10^64 颗糖果!
标签: c++