Donada una seqüència de nombres naturals entre 1 i 100 000, cal trobar els nombres que apareixen amb més freqüència i mostrar-los ordenats de major a menor freqüència. Si dos nombres tenen la mateixa freqüència, cal mostrar primer el més petit.
Per exemple, si la seqüència és:
3 1 4 1 5 9 2 6 5 3 5 1
i , els nombres més freqüents són: l’1 (apareix 3 cops), el 5 (apareix 3 cops), i el 3 (apareix 2 cops). Com que l’1 i el 5 tenen la mateixa freqüència, l’1 va primer perquè és més petit.
En aquest problema el centre d’interès és l’eficiència. Cal trobar les estructures de dades adequades per resoldre el problema en el menor temps possible.
L’entrada consisteix en diversos casos. Cada cas comença amb dos enters i , seguits de nombres naturals entre 1 i 100 000. L’entrada acaba amb fi de fitxer.
Per a cada cas, cal escriure els
nombres més freqüents, un per línia, ordenats de major a menor
freqüència. Si dos nombres tenen la mateixa freqüència, el més petit va
primer. Cada cas acaba amb una línia amb ---.
Input
12 3 3 1 4 1 5 9 2 6 5 3 5 1 8 2 7 7 3 3 7 3 1 1
Output
1 5 3 --- 3 7 ---