Joc

Time limit: 0.15s Memory limit: 8MB Input: joc.in Output: joc.out

Pentru a îmbunătăţi aptitudinile logico-matematice ale elevilor săi, profesorul Vasile a implementat un joc.
Pe ecranul principal al jocului se afişează un şir de NN scaune, numerotate de la stânga spre dreapta începând cu 11, pe fiecare scaun fiind așezat câte un copil. Fiecare copil poartă un tricou pe care este scris, de asemenea, câte un număr de la 11 la NN. Numerele de pe tricouri sunt distincte și sunt scrise pe spate, deci nu sunt vizibile.

Scopul jocului este de a descoperi numărul scris pe tricoul fiecărui copil. Pentru aceasta, pe ecran mai este afişat un triunghi de numere TT, care ne dă informaţii ajutătoare. Triunghiul arată ca o matrice în care liniile sunt numerotate de sus în jos de la 11 la NN, iar coloanele de la stânga la dreapta de la 1 la NN. Numărul scris în triunghi pe linia ii şi coloana jj (1ijn1 \leq i \leq j \leq n) reprezintă numărul scaunului pe care stă copilul având cel mai mic număr pe tricou dintre toţi copiii situaţi pe scaune cu numere cuprinse între ii şi jj (inclusiv ii şi jj). Observaţi că poziţiile din triunghi de pe linia ii şi coloana jj cu 1j<iN1 \leq j<i \leq N nu sunt completate.

Numim soluţie o succesiune de NN numere naturale distincte cuprinse între 1 şi NN care ar putea fi scrise, în ordine, de la stânga la dreapta, pe tricourile celor NN copii, astfel încât informaţiile din triunghiul de numere să fie corecte.
Două soluţii sunt considerate distincte dacă există cel puţin un copil pentru care numărul scris pe tricoul său în cele două soluţii diferă.

Cerință

Cunoscând numărul de copii şi triunghiul de numere:

  1. determinați o soluţie posibilă; dacă există mai multe soluţii posibile se va afişa cea mai mică din punctul de vedere lexicografic;
  2. determinați numărul de soluţii posibile.

Date de intrare

Fişierul de intrare joc.in conţine pe prima linie numărul natural CC reprezentând cerinţa care trebuie să fie rezolvată (11 sau 22). Pe linia a doua se află numărul natural NN cu semnificația din enunț. Pe următoarele NN linii se află numerele din triunghi. Pe linia ii dintre cele NN sunt scrise Ni+1N-i+1 numere separate prin câte un spaţiu, reprezentând numerele de pe linia ii din triunghi, situate pe coloanele ii, i+1,Ni+1, \dots N.

Date de ieșire

Fişierul de ieşire joc.out conţine o singură linie.
Dacă C=1C=1 linia conţine NN numere naturale distincte cuprinse între 1 şi NN, separate prin câte un spaţiu, reprezentând soluţia cea mai mică din punct de vedere lexicografic determinată pentru cerința 1.
Dacă C=2C=2 linia conţine numărul de soluţii posibile determinat pentru cerința 2.

Restricții și precizări

  • 1N1 0001 \leq N \leq 1 \ 000
  • Spunem că șirul a1a_1, a2a_2, aN\dots a_N este mai mic din punctul de vedere lexicografic decât șirul b1b_1, b2b_2, bN\dots b_N dacă există kk (1kN1 \leq k \leq N), astfel încât ai=bia_i=b_i, pentru orice 1i<k1 \leq i<k şi ak<bka_k<b_k.
  • Se garantează că, pentru datele de test, există cel puțin o soluție.
# Scor Restricții
1 9 C=1C=1, 1N<101 \leq N < 10
2 9 C=2C=2, 1N<101 \leq N < 10
3 22 C=1C=1, 10N1 00010 \leq N \leq 1 \ 000
4 24 C=2C=2, 10N<2810 \leq N < 28
5 36 C=2C=2, fără restricții suplimentare

Exemplul 1

joc.in

1
3
1 2 2
2 2
3

joc.out

2 1 3

Explicație

O soluţie posibilă este 22 11 33.

  • Pe secvenţa de scaune 111 \dots 1 copilul cu număr minim pe tricou este pe scaunul 11.
  • Pe secvenţa de scaune 121 \dots 2 copilul cu număr minim pe tricou este pe scaunul 22.
  • Pe secvenţa de scaune 131 \dots 3 copilul cu număr minim pe tricou este pe scaunul 22.
  • Pe secvenţa de scaune 222 \dots 2 copilul cu număr minim pe tricou este pe scaunul 22.
  • Pe secvenţa de scaune 232 \dots 3 copilul cu număr minim pe tricou este pe scaunul 22.
  • Pe secvenţa de scaune 333 \dots 3 copilul cu număr minim pe tricou este pe scaunul 33.

O altă soluţie posibilă este 33 11 22, dar 22 11 33 este mai mică din punct de vedere lexicografic.

Exemplul 2

joc.in

2
3
1 2 2
2 2
3

joc.out

2

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