某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
40%的数据满足:1<=n<=1000
80%的数据满足:1<=n<=50000
100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*109)
NOIP 2007 提高第一题
1 #include <stdio.h>
2 #include <stdlib.h>
3 int fun(const void *a,const void *b)//升序排序
4 {
5 return *(int*)a-*(int*)b;
6 }
7 int main()
8 {
9 int n,i,lala,j;
10 int ans=0;
11 int a[200000];
12 scanf("%d",&n);
13 for(i=0;i<n;i++)
14 {
15 scanf("%d",&a[i]);
16 }
17 qsort(a,n,sizeof(int),fun);
18 for(i=0;i<n;i++)
19 {
20 if(a[i]!=-100)
21 {
22 lala=a[i];
23 for(j=0;j<n;j++)
24 {
25 if(a[j]==lala)
26 {
27 ans++;
28 a[j]=-100;
29 }
30 }
31 printf("%d %d",lala,ans);
32 printf("\n");
33 ans=0;
34 }
35 }
36 return 0;
37 }