Cod sursa(job #1083274)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 15 ianuarie 2014 20:04:08
Problema Teren Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
using namespace std;

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

int n, m, x, a, nru[301][301], i, j, k, t, s, st, dr, jo, su, l, amax=0;
int main()
{
    f>>n>>m>>x;
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=m; j++)
        {
            f>>a;
            if(a==1)
                nru[i][j]=nru[i-1][j]+1;
            else
                nru[i][j]=nru[i-1][j];
        }
    }
    for(i=1; i<=n; i++)
    {
        for(j=i; j<=n; j++)
        {
            l=0;
            s=nru[j][1]-nru[i-1][1];
            for(k=2; k<=m; k++)
            {
                t=nru[j][k]-nru[i-1][k];
                if(s+t>x)
                {
                    s=0;
                    l=0;
                }
                else
                {
                    l++;
                    su=i;
                    jo=j;
                    st=k-l;
                    dr=k;
                    if (amax < (dr-st+1)*(jo-su+1))
                        amax=(dr-st+1)*(jo-su+1);
                    s+=t;
                }
            }
        }
    }
    g<<amax;
    return 0;
}