Cod sursa(job #151774)

Utilizator igorPirnau Igor igor Data 8 martie 2008 16:42:15
Problema Teren Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream.h>

#define nmax 350

ifstream f("teren.in");
ofstream g("teren.out");

int a[nmax][nmax], secv[nmax], n, m, i, j, k, sum, ik, mk, maxx, ok;

int main()
{
    f>>n>>m>>ok;
    for(i=1; i<=n; i++)
        for(j=1; j<=m; j++) f>>a[i][j];
    
    for(i=1; i<=n; i++)
       for(j=1; j<=m; j++)    a[i][j] = a[i-1][j] + a[i][j];

    for(i=0; i<n; i++)
        for(j=i+1; j<=n; j++){
            for(k=1; k<=m; k++) secv[k] = a[j][k] - a[i][k];
            sum=0; 
            mk=0;
            ik=1;
            for(k=1;k<=m;k++){
                sum=sum+secv[k];
                while( sum > ok )
                    sum = sum - secv[ik++];
                if( k - ik + 1 > mk ) mk = k - ik  + 1;
            }
            if( maxx < (j-i+1) *mk ) maxx = (j-i+1) * mk;
        }
        
    g<<maxx;
    g.close();
    return 0;
}