UVA 11462 Age Sort
被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; }
新 blog : www.hrwhisper.me