2007年NOIP全国联赛提高组
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 白银 Silver
题目描述 Description
【问题描述】 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数 不超过10000 个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统 计结果。
输入描述 Input Description
第1行是整数n,表示自然数的个数。 第2~n+1 行每行一个自然数。
输出描述 Output Description
输出包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大 的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。
样例输入 Sample Input
8 2 4 2 4 5 100 2 100
样例输出 Sample Output
2 3 4 2 5 1 100 2
数据范围及提示 Data Size & Hint
【限制】 40%的数据满足:1<=n<=1000 80%的数据满足:1<=n<=50000 100%的数据满足:1<=n<=200000,每个数均不超过1 500 000 000(1.5*10^9)
1 #include<iostream>
2 #include<algorithm>
3 using namespace std;
4 int a[10000001];
5 int tot=0;
6 int maxn;
7 int ma;
8 int ans=0;
9 int main()
10 {
11 int n;
12 cin>>n;
13 for(int i=1;i<=n;i++)
14 {
15 cin>>a[i];
16 }
17 sort(a,a+n+1);
18 for(int i=1;i<=n;i++)
19 {
20 if(a[i]==a[i+1])
21 {
22 ans++;
23 }
24 else
25 {
26 cout<<a[i]<<" "<<ans+1<<endl;
27 ans=0;
28 }
29 }
30 return 0;
31 }