Untitled

 avatar
unknown
plain_text
4 years ago
1.3 kB
3
Indexable
#include <iostream>
#include <map>
#include <algorithm>

using std::cin;
using std::cout;

const int M = 1e5;
std::map<int, int> mymap;

bool func(int a, int b) {
    return mymap[a] > mymap[b];
}

void testcase(int* a, int n) {
    //stable sort bao luu thu tu xuat hien va sap xep theo hang func
    std::stable_sort(a, a+n, func); 
    
    //in ra cac gia tri
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < mymap[a[i]]; ++j)
            cout << a[i] << " ";
    cout << "\n";
}

int main() {
    int t;
    cin >> t;
    
    while (t--) {
        int n, a[M+1];
        mymap.clear();
        cin >> n;
        
        int cnt = 0;
        for (int i = 0; i < n; ++i) {
            //doc gia tri v
            int v;
            cin >> v;
            
            //neu v chua co mat thi them vao mang a
            if (mymap[v] == 0) {
                a[cnt] = v;
                ++cnt;
                mymap[v] = 1;
            } else 
                ++mymap[v]; //tang tan suat xuat hien v
                
             //vd input: 8 5 8 5 2 3 
             //kq mang a: 8 5 2 3
             //ket qua mymap:
             //8: 2
             //5: 2
             //2: 1
             //3: 1
        }
        
        testcase(a, cnt);
    }
}
Editor is loading...