题目描述
又双叒叕开始漫无止境的八月了,阿虚突然问起长门在这些循环中团长哪几次扎起了马尾,他有多少次抓住了蝉等等问题,长门一共回复n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
输入
第1行是整数n,表示回复的自然数的个数。n<=1e6
第2~n+1行每行一个自然数。
输出
包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
样例输入 Copy
8 2 4 2 4 5 100 2 100样例输出 Copy
2 3 4 2 5 1 100 2
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cstring>
#include<map>
#include<iterator>
using namespace std;
map<int,int> m;
int main()
{
int t;
while(cin>>t){
m.clear();
for(int i=0;i<t;++i){
int x;
cin>>x;
if(m.count(x)==0){
m[x]=1;
}else{
m[x]++;
}
}
map<int,int>::iterator it;
for(it=m.begin();it!=m.end();++it){
printf("%d %d\n",it->first,it->second);
}
}
return 0;
}