Cod sursa(job #1704909)

Utilizator popabogdanPopa Bogdan Ioan popabogdan Data 19 mai 2016 16:16:03
Problema Teren Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("teren.in");
ofstream fout("teren.out");
typedef int matrice[301][301];
matrice a;
int n,m,x,i,j,i2,j2,sol;
int main()
{
    fin>>n>>m>>x;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)fin>>a[i][j],a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
    for(i=1;i<=n;i++)
        for(i2=i;i2<=n;i2++)
            for(j2=1,j=1;j2<=m;j++,j2++)
        {
            while(j>1 && a[i2][i2]-a[i-1][j2]-a[i2][j-1]+a[i-1][j-1]<=x)j--;
            while(j<j2 && a[i2][i2]-a[i-1][j2]-a[i2][j-1]+a[i-1][j-1]>x)j++;
            if(a[i2][i2]-a[i-1][j2]-a[i2][j-1]+a[i-1][j-1]<=x)
                sol=max(sol,(i2-i+1)*(j2-j+1));
        }
    fout<<sol<<"\n";
    return 0;
}