[NOIP2007][原题]
1 . 统计数字 (count.pas/c/cpp) 【问题描述】 某次科研调查时得到了 n 个自然数,每个数均不超过1500000000(1.5*10 9 )。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。 【输入】 输入文件count.in包含 n +1行: 第1行是整数 n ,表示自然数的个数。 第2~ n +1行每行一个自然数。 【输出】 输出文件count.out包含 m 行( m 为 n 个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。 【输入输出样例】 count.in count.out 8 2 4 2 4 5 100 2 100 2 3 4 2 5 1 100 2 【限制】 40%的数据满足:1<= n <=1000 80%的数据满足:1<= n <=50000 100%的数据满足:1<= n <=200000,每个数均不超过1 500 000 000(1.5*10 9 ) #include <stdio.h> #include <stdlib.h> int n; int a[201000]; int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;