Avem o matrice triunghiulară cu linii, cu elemente numere întregi. În această matrice putem construi un traseu după următoarea regulă:
- primul element al traseului este elementul
- dacă elementul aparţine traseului, atunci următorul element al traseului poate fi doar sau , pentru orice
Traseul se va codifica cu numerele de ordine ale coloanelor, parcurgând liniile de la la . Valoarea traseului este egală cu suma elementelor ce îl formează.
Traseul evidenţiat în exemplul din dreapta are valoarea , şi se codifică cu 1,2,3,3,4
.
Fie mulţimea tuturor traseelor de valoare maximă generate în ordine lexicografică și numerotate. Pentru exemplul alăturat avem șase trasee de lungime maximă:
- traseul .
1 1 1 1 2
() - traseul .
1 1 1 2 2
() - traseul .
1 2 2 2 2
() - traseul .
1 2 3 3 4
() - traseul .
1 2 3 4 4
() - traseul .
1 2 3 4 5
()
Cerinţă
Cunoscând dimensiunea și elementele unei matrice triunghiulare, respectiv două numere naturale şi (), se cere să se determine:
- Numărul total al traseelor de valoare maximă. În cazul în care această valoare depășește , se va tipări valoarea ;
- Traseele cu numerele de ordine .
Date de intrare
Fişierul summax.in
conţine pe prima linie un număr natural . Pentru toate testele de intrare, numărul poate avea doar valoarea sau .
A doua linie conține trei numere naturale , şi , separate prin spaţiu. Următoarele linii conțin câte o linie a matricei triunghiulare astfel: linia conține elemente, și anume valorile pentru orice .
Date de ieşire
Dacă valoarea lui este , se va rezolva numai punctul din cerință. În acest caz, în fişierul de ieşire summax.out
se va scrie un singur număr natural ce reprezintă numărul traseelor de lungime maximă.
Dacă valoarea lui este , se va rezolva numai punctul din cerință. În acest caz, în fişierul de ieşire summax.out
se vor tipări pe câte o linie numere naturale separate prin spațiu, reprezentând codificările traseelor de valoare maximă cu numerele de ordine .
Restricții și precizări
- ;
- ;
- ;
- elementele matricei triunghiulare sunt numere naturale strict pozitive.
- valoarea maximă a traseului nu depășește
Exemplul 1
summax.in
1
5 2 4
5
2 4
7 5 6
6 6 5 5
3 4 3 4 4
summax.out
6
Explicație
Pentru primul exemplu, .
Numărul traseelor de valoare maximă este .
Exemplul 2
summax.in
2
5 2 4
5
2 4
7 5 6
6 6 5 5
3 4 3 4 4
summax.out
1 1 1 2 2
1 2 2 2 2
1 2 3 3 4
Explicație
Pentru al doilea exemplu, , ,
S-au tipărit traseele cu numerele de ordine , și .