domino

Time limit: 0.2s Memory limit: 8MB Input: domino.in Output: domino.out

Într-un joc de domino, fiecare piesă este împărțită în două zone, în fiecare zonă fiind înscris un număr natural. Dacă jocul are dimensiunea dd, în joc vor exista toate piesele distincte care se pot forma cu numere cuprinse între 00 şi dd.

Două piese sunt considerate identice dacă au înscrise aceleași numere, indiferent de ordinea lor. Astfel, piesele (3,7)(3,7) și (7,3)(7,3) sunt identice. De exemplu, jocul de dimensiune d=2d=2 va avea 66 piese distincte:

00\boxed{0}\boxed{0}, 01\boxed{0}\boxed{1}, 02\boxed{0}\boxed{2}, 11\boxed{1}\boxed{1}, 12\boxed{1}\boxed{2}, 22\boxed{2}\boxed{2}.

Suma tuturor numerelor de pe aceste piese este 1212. Problema are două cerinţe:

  1. Dat fiind un şir format din NN numere naturale nenule reprezentând dimensiunile unor jocuri de domino, să se determine pentru fiecare joc suma tuturor numerelor înscrise pe piesele din jocul respectiv.
  2. Dat fiind un şir format din NN numere naturale nenule reprezentând sumele tuturor numerelor de pe piesele unor jocuri de domino, se construieşte mai întâi un şir de cifre, notat cu AA, scriind în ordine toate numerele din şirul dat, fără spaţii între ele. Se cere să se construiască un şir strict crescător de numere naturale, notat cu BB, parcurgând alternativ cifrele din şirul AA de la stânga la dreapta și de la dreapta la stânga după cum urmează:
    • primul număr din BB este format din prima cifră din șirul AA;
    • al doilea număr din BB se construieşte concatenând (alipind) cifrele din AA, începând de la dreapta către stânga, până când obţinem un număr strict mai mare decât primul număr din BB;
    • al treilea număr din BB se construieşte concatenând cifrele din AA de la stânga către dreapta (începând cu prima cifră care nu a fost deja utilizată), până când obţinem un număr strict mai mare decât precedentul din BB;
    • al patrulea număr din BB se construieşte concatenând din nou cifrele din AA de la dreapta la stânga (începând cu cea mai din dreapta cifră care nu a fost deja utilizată), până când obţinem un număr strict mai mare decât al treilea din BB;
    • se continuă astfel alternativ, până când nu se mai poate forma un număr strict mai mare decât ultimul număr adăugat în BB.

Cerință

Scrieți un program care rezolvă cerințele 11 și 22 descrise în enunț.

Date de intrare

Fișierul de intrare domino.in conține pe prima linie un număr natural CC reprezentând cerința care trebuie rezolvată (11 sau 22). Pe a doua linie se află numărul natural NN. Pe a treia linie se află NN numere naturale nenule separate prin câte un spaţiu d1d_1, d2d_2, \dots, dNd_N.

Date de ieșire

Fişierul de ieşire domino.out va conține o singură linie:

  • Dacă C=1C=1, pe prima linie se vor afișa NN numere naturale separate prin câte un spaţiu; al ii-lea număr afişat reprezintă suma numerelor din jocul de domino având dimensiunea did_i (1iN1 \leq i \leq N).
  • Dacă C=2C=2, pe prima linie se vor afișa în ordine, separate prin câte un spațiu, valorile din șirul BB determinat conform regulilor din enunţ.

Restricții și precizări

  • 1N1041 \leq N \leq 10^4;
  • Dacă C=1C=1, 1di10001 \leq d_i \leq 1000, iar dacă C=2C=2, 1di1091 \leq d_i \leq 10^9, pentru 1iN1 \leq i \leq N.
  • Numerele din şirul BB vor fi afişate fără zerouri nesemnificative (de exemplu, dacă în urma aplicării regulilor din enunţ în şirul BB se obţine numărul 02040204 se afişează 204204).
  • Pentru teste în valoare de 3030 de puncte cerinţa este 11.

Exemplul 1

domino.in

1
5
2 3 15 4 7

domino.out

12 30 2040 60 252

Explicație

Cerinţa este 11, deci trebuie să determinăm sumele numerelor din jocurile de dimensiune 22, 33, 1515, 44 şi 77.

Exemplul 2

domino.in

2
5
12 30 2040 60 252

domino.out

1 2 23 52 204

Explicație

Din șirul 12 30 2040 60 252 se formează:

Șirul AA Șirul BB Sensul de formare
1230204060252\sout{1}230204060252 11 \longrightarrow
23020406025223020406025\sout{2} 1 21 \ 2 \longleftarrow
23020406025\sout{23}020406025 1 2 231 \ 2 \ 23 \longrightarrow
0204060250204060\sout{25} 1 2 23 521 \ 2 \ 23 \ 52 \longleftarrow
0204060\sout{0204}060 1 2 23 52 2041 \ 2 \ 23 \ 52 \ 204 \longrightarrow
060060 Nu se mai poate forma un număr >204\gt 204 -

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