7909:统计数字
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
- 输入
- 包含n+1行:
第一行是整数n,表示自然数的个数;
第2~n+1每行一个自然数。40%的数据满足:1<=n<=1000;
80%的数据满足:1<=n<=50000;
100%的数据满足:1<=n<=200000,每个数均不超过1500 000 000(1.5*10^9)。 - 输出
- 包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
- 样例输入
-
8 2 4 2 4 5 100 2 100
- 样例输出
-
2 3 4 2 5 1 100 2
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 int t[1000100]; 6 int main() 7 { 8 int i,n,s=1; 9 cin>>n; 10 for(i=0;i<n;++i) 11 scanf("%d",&t[i]); 12 sort(t,t+n); //从小到大排序 13 for(i=0;i<n;++i) 14 { 15 if(t[i]==t[i+1])++s;//若重复,则s记录相同数字个个数 16 else { 17 printf("%d %d\n",t[i],s); 18 s=1; //一定把s归为1; 19 } 20 } 21 return 0; 22 }
时间: 2024-10-23 04:58:01