問題描述 ios
某次科研調查時獲得了n個天然數,每一個數均不超過1.5109。已知不相同的數不會超過10000個,如今須要統計這些天然數各自出現的個數,並按照天然數從小到大的順序輸出統計結果。 spa
輸入 code
輸入文件count.in包含n+1行; blog
第一行是整數n,表示天然數的個數, ci
第2~n+1行每一行一個天然數。 string
輸出 it
輸出文件count.out包含m行(m爲n個天然數中不相同數的個數),按照天然數從小到大的順序輸出。每行輸出兩個整數,分別是天然數和該數出現的個數,其間用一個空格隔開。 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; }