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;
}
相關文章
相關標籤/搜索