Cod sursa(job #276639)

Utilizator runnaway90Oprescu Radu Constantin runnaway90 Data 11 martie 2009 11:51:12
Problema Teren Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<stdio.h>
#define N 302

bool a[N][N];
int b[N][N], n, m, x, max;

void citire(), rezolva();


int main (){
    freopen("teren.in", "r", stdin);
    freopen("teren.out", "w", stdout);

    citire();
    rezolva();

    return 0;
}

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

void rezolva(){
int i, j, k, l;/*
    for (i = 1; i <= n; i++){
        for (j = 1; j <= m; j++)
            printf("%d ", b[i][j]);
        printf("\n");
    }*/
    for (i = 1; i <= n; i++)
        for (j = 1; j <= m; j++)
            for (k = 0; k < i; k++)
                for (l = 0; l <j; l++)
                    if (b[i][j] - b[i][l] - b[k][j] + b[k][l] <= x)
                        if ((i-k)* (j-l) > max)
                            max = (i-k)* (j-l);
    printf("%d\n", max);
}