Jocul nostru presupune parcurgerea unui tablou bidimensional cu două linii şi n coloane, format din 2 x n celule pătratice. Fiecare celulă are asociată câte o valoare întreagă v care nu se modifică pe durata desfăşurării jocului. Jucătorii trebuie să găsească un drum de la celula de plecare la celula de sosire care respectă următoarele condiţii:
- celula de plecare este cea din linia 1 şi coloana 1, iar celula de sosire este cea din linia 2 şi coloana n.
- nu trece decât cel mult odată prin oricare celulă.
- deplasarea se poate face din celula curentă spre oricare altă celulă învecinată cu ea pe orizontală sau verticală.
- conţine cel mult k celule consecutive aflate pe aceeaşi linie.
Pentru un astfel de drum se calculează punctajul acestuia ca fiind egal cu suma valorilor asociate celulelor prin care trece drumul.
Cerinţă
Cunoscând valorile asociate celulelor tabloului, scrieţi un program care determină punctajul maxim care poate fi obţinut în acest joc.
Date de intrare
Fişierul de intrare joc15.in va conţine pe prima linie două numere naturale n şi k separate printr-un spaţiu cu semnificaţiile din enunţ. Pe fiecare dintre următoarele două linii se găsesc câte n numere întregi, reprezentând valorile asociate celor 2 x n celule ale tabloului.
Date de ieşire
Fişierul de ieşire joc15.out va conţine pe prima linie numărul întreg p, reprezentând punctajul maxim care se poate obţine.
Restricţii
2 ≤ n ≤ 5000
2 ≤ k ≤ 10, k ≤ n
-1000 ≤ v ≤ 1000
Pentru 40% dintre cazurile de test n ≤ 40
Exemple
joc15.in
joc15.out
Explicaţii
6 3
0 -2 5 4 -9 -1
-1 3 2 7 0 1
21
Jucătorul va parcurge în ordine celulele cu valorile: 0, -1, 3, 2, 5, 4, 7, 0, 1
5 5
0 0 4 2 10
2 -3 -8 6 -2
14
Jucătorul va parcurge în ordine celulele cu valorile: 0, 0, 4, 2, 10, -2
5 4
-3 0 5 4 10
-2 3 -2 7 0
22
Jucătorul va parcurge în ordine celulele cu valorile: -3,-2, 3, 0, 5, -2, 7, 4, 10, 0