Cod sursa(job #385806)
| Utilizator | Data | 23 ianuarie 2010 15:27:53 | |
|---|---|---|---|
| Problema | Teren | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include<fstream.h>
int b,a[302][302],m,n,x,s,smax,i,j,k,p;
int main()
{
ifstream f("teren.in");
ofstream g("teren.out");
f>>n>>m>>x;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
f>>b;
if(b==1) a[i][j]=a[i-1][j]+1;
else a[i][j]=a[i-1][j];
}
for(i=1;i<=n;i++)
{
for(j=i;j<=n;j++)
{
s=0;p=1;
for(k=1;k<=m;k++)
{ s+=a[j][k]-a[i-1][k];
while(s>x&&p<=k)
{ s=s-(a[j][p]-a[i-1][p]);
p++;
}
if(p<=k)
if((j-i+1)*(k-p+1)>smax)
{
smax=(j-i+1)*(k-p+1);
}
}
}
}
g<<smax;
return 0;
}