triunghi

Time limit: 0.5s Memory limit: 32MB Input: triunghi.in Output: triunghi.outPoints by default: 10p

Se consideră AA un tablou bidimensional cu nn linii, nn coloane și elemente numere naturale. O zonă triunghiulară a tabloului, reprezentată de tripletul (lin,col,klin, col, k), este o zonă de forma unui triunghi dreptunghic cu catetele de lungime egală cu k|k|, definită astfel:

Pentru k>0k > 0, zona este compusă din kk linii:

  • pe prima linie a zonei se află elementele A[lin][col],A[lin][col+1],,A[lin][col+k1]A[lin][col], A[lin][col+1], \dots, A[lin][col+k-1];
  • pe a doua linie a zonei se află elementele A[lin+1][col],A[lin+1][col+1],,A[lin+1][col+k2]A[lin+1][col], A[lin+1][col+1], \dots, A[lin+1][col+k-2];
  • pe a treia linie a zonei se află elementele A[lin+2][col],A[lin+2][col+1],,A[lin+2][col+k3]A[lin+2][col], A[lin+2][col+1], \dots, A[lin+2][col+k-3];
  • \dots;
  • pe ultima linie a zonei se află elementul A[lin+k1][col]A[lin+k-1][col].

Pentru k<0k<0, zona este compusă din k=k|k|=-k linii:

  • pe prima linie a zonei se află elementul A[link+1][col]A[lin-|k|+1][col];
  • pe a doua linie a zonei se află elementele A[link+2][col1],A[link+2][col]A[lin-|k|+2][col-1], A[lin-|k|+2][col];
  • \dots;
  • pe ultima linie a zonei se află elementele A[lin][colk+1],A[lin][colk+2],,A[lin][col]A[lin][col-|k|+1], A[lin][col-|k|+2], \dots, A[lin][col].

Suma elementelor ce compun o zonă triunghiulară se numește suma zonei.

Cerință

Scrieţi un program care, cunoscând tabloul AA şi QQ zone triunghiulare, determină cea mai mare dintre sumele zonelor.

Date de intrare

Fișierul de intrare triunghi.in conține pe prima linie numărul natural nn, cu semnificaţia din enunţ. Pe următoarele nn linii se găsesc câte nn valori naturale, reprezentând elementele tabloului AA. Pe linia n+2n + 2 se află numărul natural QQ, reprezentând numărul zonelor triunghiulare. Pe următoarele QQ linii se găsesc tripletele de valori lin col klin \ col \ k, care reprezintă cele QQ zone, în forma descrisă în enunţ. Valorile aflate pe aceeaşi linie a fişierului sunt separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire triunghi.out va conține o singură linie pe care va fi scris un număr natural reprezentând suma maximă cerută.

Restricții și precizări

  • 3n1 0003 \leq n \leq 1 \ 000; 1Q100 0001 \leq Q \leq 100 \ 000; 2kn2 \leq |k| \leq n;
  • Valorile din tablou sunt numere naturale din intervalul [1,1001, 100].
  • Liniile şi coloanele tabloului AA sunt numerotate de la 11 la nn (liniile de sus în jos, iar coloanele de la stânga la dreapta).
  • k|k| reprezintă modulul numărului kk (kk, pentru k0k \geq 0, respectiv k-k, pentru k<0k < 0).
  • Se garantează că orice zonă triunghiulară dintre cele QQ este complet inclusă în tabloul AA.

Exemplu

triunghi.in

6
5 8 10 4 9 4
2 10 10 2 4 8
8 10 3 4 6 6
4 6 9 7 1 9
6 7 2 2 10 6
10 4 6 1 10 4
3
4 1 3
4 4 -4
6 5 -2

triunghi.out

59

Explicație

Zona triunghiulară de sumă maximă (5959) este reprezentată de tripletul (4, 4, 44 ,\ 4 ,\ -4) și conține valorile evienţiate: 59=4+(10+2)+(10+3+4)+(4+6+9+7)59 = 4 + (10 + 2) + (10 + 3 + 4) + (4 + 6 + 9 + 7).

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