Pagini recente » Cod sursa (job #59427) | Cod sursa (job #548683) | Cod sursa (job #1678760) | Cod sursa (job #2827389) | Cod sursa (job #65806)
Cod sursa(job #65806)
#include <stdio.h>
#define NMAX 125
int n, m;
int a[NMAX][NMAX][NMAX];//a[i][j][k] = max(a[i][j][k-1], a[i+1][j][k-1], a[i][j+1][k-1], a[i+1][j+1][k-1]);
inline int max(int a, int b) { return (a > b) ? a : b; }
void read()
{
int i, j;
scanf("%d %d", &n, &m);
if(n >= NMAX)
n = NMAX-1;
for(i = 1; i <= n; ++i)
{
for(j = 1; j <= n; ++j)
scanf("%d", &a[i][j][1]);
}
}
void dinamic()
{
int i, j, k;
int aux;
for(i = n-1; i > 0; --i)
{
for(j = n-1; j > 0; --j)
{
//aux = max(i, j);
aux = (n-i+1)*(n-j+1);
for(k = 2; k < NMAX; ++k)
a[i][j][k] = max(max(a[i][j][k-1], a[i+1][j][k-1]), max(a[i][j+1][k-1], a[i+1][j+1][k-1]));
}
}
}
int main()
{
freopen("plantatie.in", "r", stdin);
freopen("plantatie.out", "w", stdout);
read();
dinamic();
int i, j, k;
//scanf("%d", &m);
while(m--)
{
scanf("%d %d %d\n", &i, &j, &k);
printf("%d\n", a[i][j][k]);
}
fclose(stdin);
fclose(stdout);
return 0;
}