【解题报告】洛谷P1097 统计数字

题目链接

https://www.luogu.com.cn/problem/P1097

思路

因为数据太大了,所以我们考虑排一个序,然后再遍历一遍,在遍历的过程中直接统计即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
using namespace std;
int n;
long long a[200005];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
sort(a+1,a+1+n);
int ans=a[1],cnt=1;
for(int i=2;i<=n;i++)
{
if(a[i]!=ans)
{
cout<<ans<<" "<<cnt<<endl;
cnt=0;
}
ans=a[i];
cnt++;
}
cout<<ans<<" "<<cnt<<endl;
return 0;
}