Lăcusta

Time limit: 0.1s Memory limit: 4MB Input: lacusta.in Output: lacusta.out

Se consideră o matrice dreptunghiulară cu mm linii şi nn coloane, cu valori naturale. Traversăm matricea pornind de la colţul stânga-sus la colţul dreapta-jos. O traversare constă din mai multe deplasări. La fiecare deplasare se execută un salt pe orizontală şi un pas pe verticală. Un salt înseamnă că putem trece de la o celulă la oricare alta aflată pe aceeaşi linie, iar un pas înseamnă că putem trece de la o celulă la celula aflată imediat sub ea. Excepţie face ultima deplasare (cea în care ne aflăm pe ultima linie), când vom face doar un salt pentru a ajunge în colţul dreapta-jos, dar nu vom mai face şi pasul corespunzător. Astfel traversarea va consta din vizitarea a 2m2 \cdot m celule.

Cerinţă

Scrieţi un program care să determine suma minimă care se poate obţine pentru o astfel de traversare.

Date de intrare

Fişierul de intrare lacusta.in conţine pe prima linie două numere naturale separate printr-un spaţiu m nm \ n, reprezentând numărul de linii şi respectiv numărul de coloane ale matricei. Pe următoarele mm linii este descrisă matricea, câte nn numere pe fiecare linie, separate prin câte un spaţiu.

Date de ieșire

Fişierul de ieşire lacusta.out va conţine o singură linie pe care va fi scrisă suma minimă găsită.

Restricții și precizări

  • 1m,n1001 \leq m, n \leq 100
  • Valorile elementelor matricei sunt numere întregi din intervalul [1,255][1, 255]

Exemplu

lacusta.in

4 5
3 4 5 7 9
6 6 3 4 4
6 3 3 9 6
6 5 3 8 2

lacusta.out

28

Explicație

Drumul este:
(1,1)(1,3)(1,1)→(1,3)→
(2,3)(2,2)(2,3)→(2,2)→
(3,2)(3,3)(3,2)→(3,3)→
(4,3)(4,5)(4,3)→(4,5)

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