Cod sursa(job #1591201)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 5 februarie 2016 21:22:20
Problema Teren Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
using namespace std;
int n,m,x,i,j,s[305][305],mx,t,k;
bool a[305][305];
int main()
{freopen("teren.in","r",stdin);
 freopen("teren.out","w",stdout);
 scanf("%d%d%d",&n,&m,&x);
 for(i=1;i<=n;i++)
    {for(j=1;j<=m;j++)
        {scanf("%d",&a[i][j]);
        }
    }
 for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
       {if(a[i][j]==1)s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1]+1;
          else s[i][j]=s[i][j-1]+s[i-1][j]-s[i-1][j-1];
        for(t=0;t<=i-1;t++)
           {for(k=0;k<=j-1;k++)
               {if((i-t)*(j-k)<=mx&&k==0){t=i;break;}
                else if((i-t)*(j-k)<=mx) k=j;
                else if((s[i][j]+s[t][k]-s[t][j]-s[i][k]<=x)&&(mx<(i-t)*(j-k)))mx=(i-t)*(j-k);

               }
           }
       }
 printf("%d",mx);
}