本蒟蒻 今早刚打算刷道题 结果就被题给刷了
难受啊 大佬们求调——
题目传送门https://www.luogu.com.cn/problem/P1097
#include <bits/stdc++.h>
using namespace std;
int n, a[200003], up = 0;
int b[150000003], c[200003];
inline int part(int l, int r){
int i = l, j = r, prv = c[l];
while (i < j){
while (i < j && c[j] > prv) j--;
if (i < j) swap(c[i++], c[j]);
while (i < j && c[i] <= prv) i++;
if (i < j) swap(c[i], c[j--]);
}
return i;
}
inline void qsort(int l, int r){
if (l < r){
int mid = part(l, r);
qsort(l, mid - 1);
qsort(mid + 1, r);
}
}
int main()
{
scanf ("%d", &n);
memset (b, 0, sizeof(b));
for (int i = 1; i <= n; i++){
scanf ("%d", &a[i]);
b[a[i]]++;
if (b[a[i]] == 1) c[++up] = a[i];
}
qsort (1, up);
for (int i = 1; i <= up; i++){
printf ("%d %d\n", c[i], b[c[i]]);
}
return 0;
}