Nombres anagramàtics P94903


Statement
 

pdf   zip

En aquest problema, direm que dos o més nombres són anagramàtics entre ells si tenen el mateix nombre de dígits de cada. Per exemple, 7090, 9007 i 9700 són anagramàtics, perquè tots tres tenen dos 0s, un 7 i un 9. En aquest aspecte, podem dir que tots tres representen el mateix anagrama. Feu un programa que, donats nn nombres, calculi quants anagrames diferents representen.

El vostre programa ha d’implementar i usar una funció

string compta_digits(int x);

que retorni un @string@ de mida 10 que codifiqui el nombre de dígits de cada del nombre @x@ donat, amb 11 \le @x@ 109\le 10^9. Per exemple, per a 7090 ha de retornar “2000000101”.

Entrada

L’entrada consisteix en diversos casos, cadascun amb nn seguida de nn enters entre 1 i 10910^9. Poseu suposar 0n1050 \le n \le 10^5.

Sortida

Per a cada cas, escriviu el nombre d’anagrames diferents continguts en la seqüència donada.

Pista

Una solució quadràtica en nn seria massa lenta.

Public test cases
  • Input

    5  7090 709 9007 6 9700
    0
    6  12233 12233 32312 33212 33221 12233
    

    Output

    3
    0
    1
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++