Cod sursa(job #331756)

Utilizator DraStiKDragos Oprica DraStiK Data 15 iulie 2009 10:54:24
Problema Plantatie Scor 40
Compilator cpp Status done
Runda splunge2 Marime 1.05 kb
#include <stdio.h>
#define DIM 205

int a[DIM][DIM],b[DIM][DIM][DIM];
int n,m;

void read ()
{
    int i,j;
    scanf ("%d%d",&n,&m);
    for (i=1; i<=n; ++i)
        for (j=1; j<=n; ++j)
            scanf ("%d",&a[i][j]);
}

int maxim (int a,int b,int c,int d)
{
    if (a>=b && a>=c && a>=d)
        return a;
    if (b>=a && b>=c && b>=d)
        return b;
    if (c>=b && c>=a && c>=d)
        return c;
    return d;
}

void proc ()
{
    int i,j,k;
    for (i=1; i<=n; ++i)
        for (j=1; j<=n; ++j)
            b[i][j][1]=a[i][j];
    for (k=2; k<=n; ++k)
        for (i=1; i<=n; ++i)
            for (j=1; j<=n; ++j)
                b[i][j][k]=maxim (b[i][j][k-1],b[i+1][j][k-1],b[i][j+1][k-1],b[i+1][j+1][k-1]);
}

void solve ()
{
    int i,x,y,z;
    for (i=1; i<=m; ++i)
    {
        scanf ("%d%d%d",&x,&y,&z);
        printf ("%d\n",b[x][y][z]);
    }
}

int main ()
{
    freopen ("plantatie.in","r",stdin);
    freopen ("plantatie.out","w",stdout);
    read ();
    proc ();
    solve ();
    return 0;
}