NOIP2007 count 统计数字

问题描述 ios

某次科研调查时获得了n个天然数,每一个数均不超过1.5109。已知不相同的数不会超过10000个,如今须要统计这些天然数各自出现的个数,并按照天然数从小到大的顺序输出统计结果。 spa

 

输入 code

输入文件count.in包含n+1行; blog

第一行是整数n,表示天然数的个数, ci

2~n+1行每一行一个天然数。 string

输出 it

输出文件count.out包含m(mn个天然数中不相同数的个数),按照天然数从小到大的顺序输出。每行输出两个整数,分别是天然数和该数出现的个数,其间用一个空格隔开。 io

 

输入输出样例 class

count.instream

8

2

4

2

4

5

100

2

100

 

count.out

2  3

4  2

5  1

100  2

 

限制

40%的数据知足1<=n<=1000

80%的数据知足1<=n<=50000

100%的数据知足1<=n<=200000,每一个数均不超过1.5*109 

 

#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const unsigned long long MAXN=200000+10;
bool comp(int a,int b)
{
     return a<b;
}
int sum[MAXN],n,Count=1;
int main()
{
    freopen("count.in","r",stdin);
    freopen("count.ans","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>sum[i];
    sort(sum+1,sum+n+1,comp);
    for(int i=2;i<=n;i++)
    {
        if(sum[i]==sum[i-1])
            Count++;
        else
        {
            cout<<sum[i-1]<<" "<<Count<<endl;
            Count=1;
        }
    }
    cout<<sum[n]<<" "<<Count<<endl;
    return 0;
}
相关文章
相关标签/搜索