Cod sursa(job #18947)

Utilizator alex_damianDamian Alexandru alex_damian Data 18 februarie 2007 15:10:22
Problema Plantatie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>

#define FIN "plantatie.in"
#define FOUT "plantatie.out"
#define MAXN 505
#define max(x,y) ((x>y) ? (x) : (y))

long mat[MAXN][MAXN][MAXN], n, m, i, j, x, y, z;

int main() {
	freopen(FIN, "r", stdin);
  freopen(FOUT, "w", stdout);
  scanf("%ld %ld", &n, &m);
  for (i=1;  i<=n; i++) for (j=1; j<=n; j++) scanf("%ld", &mat[i][j][1]);
  for (x=2; x<=n; x++)
     for (i=n; i>0; i--)
        for (j=n; j>0; j--) {
           mat[i][j][x] = mat[i][j][1];
           mat[i][j][x] = max(mat[i][j][x], mat[i+1][j][x-1]);
           mat[i][j][x] = max(mat[i][j][x], mat[i+1][j+1][x-1]);
           mat[i][j][x] = max(mat[i][j][x], mat[i][j+1][x-1]);
        }
  for (i=1; i<=m; i++) {
     scanf("%ld %ld %ld", &x, &y, &z);
     printf("%ld\n", mat[x][y][z]);
  }
	return 0;
}