值域范围有些大,所以用了 map 。代码如下:
#include <algorithm>
#include <cstdio>
#include <map>
using namespace std;
int n, a, maxn;
map <int, int> mp;
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++)
scanf("%d", &a), mp[a]++, maxn = max(maxn, a);
for (int i = 1; i <= maxn; i++)
if (mp[i])
printf("%d %d\n", i, mp[i]);
return 0;
}
结果全TLE,求调。