페이지

2910번: 빈도 정렬

https://www.acmicpc.net/problem/2910


#include<cstdio>
#include<map>
#include<algorithm>
using namespace std;
map<intint> mp;
int n, c, a[1000], pcnt;
pair<intint> p[1000];
int main() {
    scanf("%d%d", &n, &c);
    for (int i = 0, x; i<n; i++) {
        scanf("%d", a + i);
        mp[a[i]]++;
    }
    for (int i = 0; i<n; i++) {
        if (mp[a[i]]) p[pcnt++] = { -mp[a[i]],i }, mp[a[i]] = 0;
    }
    sort(p, p + pcnt);
    for (int i = 0; i<pcnt; i++) {
        while (p[i].first++) printf("%d ", a[p[i].second]);
    }
    return 0;
}

댓글 없음 :

댓글 쓰기