tuburi

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

Pe un perete au fost montate n×mn \times m piese pe nn rânduri (numerotate de sus în jos, de la 11 la nn) şi mm coloane (numerotate de la stânga la dreapta, de la 11 la mm). Piesele sunt tuburi sau coturi având unul dintre tipurile 11, 22, \dots, 66, conform imaginii alăturate.

Ionel poate introduce o bilă într-o piesă situată pe rândul 11, doar dacă piesa este de tip 22, 44 sau 66. Bila poate coborî un nivel sau se poate deplasa pe orizontală într-o piesă alăturată, dacă îmbinarea pieselor permite aceasta, dar nu poate urca, din cauza gravitației. Bila nu poate trece de două ori prin aceeași piesă și se blochează atunci când nu se mai poate deplasa într-o altă piesă.

Cerință

Se citesc două numere naturale nn, mm și apoi n×mn \times m numere din mulţimea {1,2,3,4,5,6}\{1, 2, 3, 4, 5, 6\} reprezentând dispunerea pieselor pe perete. Scrieți un program care să rezolve următoarele cerinţe:

  1. Determină numărul maxim de piese prin care poate trece până la blocare o bilă introdusă în una dintre piesele de pe rândul 11, având tipul 22, 44 sau 66;
  2. Pentru un rând kk dat, determină numerele cc și tt, unde cc este coloana minimă pentru care, înlocuind piesa existentă pe rândul kk şi coloana cc cu o piesă de tipul tt, se obţine un număr cât mai mare posibil de piese prin care poate trece, până la blocare, o bilă introdusă în una dintre piesele de pe rândul 11 având tipul 22, 44 sau 66; dacă există mai multe soluţii de a înlocui piesa de pe rândul kk şi coloana cc, se alege varianta cu tt minim.

Date de intrare

Fișierul de intrare tuburi.in conține pe prima linie un număr natural CC reprezentând cerința care trebuie să fie rezolvată (11 sau 22), pe a doua linie numerele naturale nn, mm, reprezentând dimensiunile peretelui. Pe fiecare dintre următoarele nn linii se află câte mm numere aparținând mulțimii {1,2,3,4,5,6}\{1, 2, 3, 4, 5, 6\} reprezentând în ordine tipurile pieselor de pe perete.

Dacă cerința este C=2C=2, fișierul de intrare conține în plus, pe a (n+3)(n+3)-a linie, un număr natural kk reprezentând numărul unui rând de piese. Valorile scrise pe aceeaşi linie sunt separate prin câte un spațiu.

Date de ieșire

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

  • Dacă C=1C=1, atunci pe prima linie a fișierului se va scrie un număr natural reprezentând rezultatul de la cerinţa 11.
  • Dacă C=2C=2, atunci pe prima linie a fișierului se vor scrie două numere naturale cc și tt, separate printr-un spațiu, cu semnificația din enunț.

Restricții și precizări

  • 2n,m5002 \leq n, m \leq 500;
  • Pentru teste valorând 4040 de puncte, cerința este 11.

Exemplul 1

tuburi.in

1
5 6
2 2 1 6 4 3
1 6 2 5 1 6
2 5 2 5 2 2
2 3 4 3 4 3
2 1 5 6 5 6

tuburi.out

9

Explicație

Datele de intrare corespund imaginii alăturate. Traseul ce corespunde numărului maxim de piese este: (1,4)(1,4), (1,3)(1,3), (2,3)(2,3), (3,3)(3,3), (4,3)(4,3), (4,4)(4,4), (5,4)(5,4), (5,3)(5,3), (5,2)(5,2).

Exemplul 2

tuburi.in

2
5 6
2 2 1 6 4 3
1 6 2 5 1 6
2 5 2 5 2 2
2 3 4 3 4 3
2 1 5 6 5 6
5

tuburi.out

4 5

Explicație

Înlocuind piesa din rândul 55, coloana 44 cu o piesă de tip 55, numărul maxim de piese prin care poate trece o bilă va fi 1212.

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