Description
某次科研调查时得到了n个自然数,每个数均不超过 1500000000(1.5*109)。已知不相同的数不超过 10000 个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
Format
Input
输入 n+1 行:
第 1 行是整数 n,表示自然数的个数。
第 2~n+1 行每行一个自然数
Output
输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。 每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
Samples
输入数据
8
2
4
2
4
5
100
2
100
输出数据
2 3
4 2
5 1
100 2
样例代码
#include<bits/stdc++.h>
using namespace std;
int a[1000005];
int n,i,cnt=0,j;
int main()
{
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
for(i=0;i<n;i++) {
if(i==0){
j=a[i];
cnt=1;
continue;
}
if(j!=a[i]){
cout<<j<<" "<<cnt<<endl; //如果和第一个数不相同,则记录下一个数的个数,存入cnt中
j=a[i];
cnt=1;
}
else if(j==a[i]){
cnt++;
}
}
cout<<j<<" "<<cnt<<endl; //记录最后一个数的个数,因为最后一数没有经理上一个cout
return 0;
}