您的位置:首页 > 其它

UVA 11462 Age Sort

2013-07-27 19:58 405 查看
被HDU的汉诺塔虐个半死 T T

故来虐虐水题。

唯一要注意的就是内存限制。

Input Data is pretty big (~ 25 MB) so use faster IO.

Note: The memory limit of this problem is 2 Megabyte Only.

当输入数据较大应尽量使用scanf/printf而不是cin/cout

因为有内存限制,而n<=2 000 000所以不能全部存入数组在调用sort进行排序。

注意到年龄为1~100一个简单的解决办法是弄个数组 ,统计各个年龄的个数,等下按顺序输出即可。

#include <cstdio>
#include <cstring>
int main()
{
int n,temp,age[101];
while(scanf("%d",&n)!=EOF,n)
{
memset(age,0,sizeof(age));
while(n--)
{
scanf("%d",&temp);
age[temp]++;
}
bool first=true;
for(int i=1;i<101;i++)
{
if(age[i])
for(int j=0;j<age[i];j++)
{
if(!first)
printf(" ");
printf("%d",i);
first=false;
}
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: