题目描述
某次科研调查时得到了nn个自然数,每个数均不超过1500000000(1.5 \times 10^9)1500000000(1.5×109)。已知不相同的数不超过1000010000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
输入输出格式
输入格式:
共n+1n+1行。
第一行是整数nn,表示自然数的个数;
第22至n+1n+1每行一个自然数。
输出格式:
共mm行(mm为nn个自然数中不相同数的个数),按照自然数从小到大的顺序输出。
每行输出22个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
输入输出样例
输入样例#1:
复制
8 2 4 2 4 5 100 2 100
输出样例#1:
复制
2 3 4 2 5 1 100 2
(数组计数)
#include<iostream> #include<fstream> #include<algorithm> #include<cstdio> #include<map> using namespace std; long long n,b; map<long long,long long>a; int c[100000000]; long long maxx=-10000000; long long box; int main() { cin>>n; for(int i=1;i<=n;i++) { scanf("%d",&b); if(a[b]==0) c[++box]=b; a[b]++; } sort(c,c+1+box); for(int i=1;i<=box;i++) { printf("%d %d\n",c[i],a[c[i]]); } }