Fişierul intrare/ieşire:permutari1.in, permutari1.outSursăIQ Academy
AutorCristian FrancuAdăugată defrancuCristian Francu francu
Timp execuţie pe test0.35 secLimită de memorie2048 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Permutări1 (clasa a 7-a)

Notă: aceasta este o problemă de introducere în recursivitate. Atenţie, funcţia recursivă de generare a permutărilor trebuie scrisă eficient. Succes!

Dat n ≤ 10 considerăm permutările cifrelor de la 0 la n-1. Fiecare permutare va fi un număr de n cifre. Ordonînd aceste numere ele vor căpăta poziţii. De exemplu, pentru n = 3 vom avea numerele (în ordine): 12, 21, 102, 120, 201, 210. Poziţia lui 12 este 1, poziţia lui 102 este 3, iar poziţia lui 120 este 4.

Cerinţă

Dat n şi poziţiile unor numere de n cifre, în ordine crescătoare, să se afişeze suma numerelor de la acele poziţii.

Date de intrare

Fişierul de intrare permutari1.in conţine pe prima linie numărul n. Pe următoarele linii se vor afla poziţiile numerelor de n cifre, în ordine crescătoare, cîte una pe linie. Pe ultima linie a fişierului se va afla numărul 0 (terminator de poziţii).

Date de ieşire

În fişierul de ieşire permutari1.out se va scrie suma acelor numere de n cifre (formate din permutările cifrelor de la 0 la n-1) ale căror poziţii au fost citite din fişierul de intrare.

Restricţii

  • 1 ≤ n ≤ 10
  • Numărul de poziţii ce se vor citi din fişierul de intrare este mai mic sau egal decît minimul dintre n! şi 50000
  • Poziţiile se află în ordine crescătoare în fişierul de intrare
  • Poziţiile nu se repetă
  • Poziţiile sînt între 1 şi n! (numărul de permutări de n cifre)

Exemplu

permutari1.inpermutari1.outExplicaţie
3
1
3
4
0
234
Permutările posibile sînt:
 
poziţia 1: 012
poziţia 2: 021
poziţia 3: 102
poziţia 4: 120
poziţia 5: 201
poziţia 6: 210
 
Efectuînd suma numerelor de pe poziţiile 1, 3 şi 4 obţinem 12 + 102 + 120 = 234.
Trebuie sa te autentifici pentru a trimite solutii. Click aici