Pagini recente » Cod sursa (job #1102384) | Cod sursa (job #2591738) | Cod sursa (job #1906064) | Cod sursa (job #421824) | Cod sursa (job #1289071)
#include <stdio.h>
int n,m,x;
int a[301][301],b[301][301];
int maxim(int a,int b)
{
if(a<b) return b;
return a;
}
int main()
{
FILE *fin,*fout;
fin=fopen("teren.in","r");
fout=fopen("teren.out","w");
fscanf(fin,"%d %d %d",&n,&m,&x);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
fscanf(fin,"%d",&b[i][j]);
if(b[i][j]==1)
{
for(int k=1;k<=n;k++) a[k][j]+=1;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=2;j<=m;j++)
{
a[i][j]+=a[i][j-1];
}
}
int max=0,sum=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int k=j;k<=m;k++)
{
sum=0;
for(int s=i;s<=n;s++)
{
sum+=a[s][k]-a[s][j-1];
if(sum>x) break;
if(max<s*(k-j+1)) max=s*(k-j+1);
}
}
}
}
fprintf(fout,"%d", max);
}