numere

Time limit: 0.01s Memory limit: 16MB Input: numere.in Output: numere.out

Fie un număr natural X format din maximum 20 cifre, toate nenule. Adrian doreşte să construiască pe rând, în ordine crescătoare a valorii lor, toate numerele distincte care se pot forma prin schimbarea poziţiei cifrelor numărului X. Pentru că n este numărul său norocos, el doreşte să afle al n-lea număr care se obţine în acest fel.

Cerinţă

Scrieţi un program care determină al n-lea număr, cu numerotare de la 1, care se poate forma din cifrele lui X.

Date de intrare

Fişierul de intrare numere.in conţine pe prima linie cele două numere naturale n şi X separate printr-un singur spaţiu.

Date de ieşire

Fişierul de ieşire numere.out va conţine pe prima linie numărul natural Y, care reprezintă al n-lea număr care se poate forma cu toate cifrele numărului X. Dacă al n-lea număr generat în ordine crescătoare nu există, se va afişa -1.

Restricţii şi precizări

  • Pentru 20% din teste n ≤ 200 iar X are cel mult 9 cifre
  • Pentru celelalte teste 200n31011200 ≤ n ≤ 3 \cdot 10^{11}

Exemplul 1

numere.in

2 8264

numere.out

2486

Explicație

Considerând ordinea crescătoare a valorii, primul număr care se poate forma este 2468 iar al doilea 2486

Exemplul 2

numere.in

3 523525

numere.out

225535

Explicație

Primele trei numere care se formează sunt: 223555223555, 225355225355, 225535225535.

Log in or sign up to be able to send submissions!