Ordenação por frequência mantendo a ordem
Rust
Hard
sorting
Tarefa «Ordenação por frequência mantendo a ordem»
Dado um array de números inteiros. É necessário ordená-lo em ordem decrescente de frequência de ocorrência dos elementos. Se dois elementos ocorrem o mesmo número de vezes, eles devem ser dispostos na ordem de sua primeira aparição no array original. É necessário implementar um algoritmo de ordenação com complexidade de tempo O(n log n) e uso de memória adicional O(n).
Formato de Entrada
A primeira linha contém um número inteiro n (1 ≤ n ≤ 10^5). A segunda linha contém n números inteiros separados por espaços.
Formato de Saída
Imprima n números inteiros separados por espaços — o array ordenado.
Exemplos
Exemplo 1
ENTRADA
3
3 2 1
SAÍDA
3 2 1
main.rs