Pagini recente » Cod sursa (job #1921221) | Cod sursa (job #2624760) | Cod sursa (job #232012) | Cod sursa (job #3150060) | Cod sursa (job #61049)
Cod sursa(job #61049)
#include<stdio.h>
long n,m,solmax,sol,linie,maxim;
char a[201][201];
FILE*g=fopen("bmatrix.out","w");
void afis()
{
int i,j;
for(i=1;i<=n;++i)
{ for(j=1;j<=m;++j)
fprintf(g,"%c ",a[i][j]);
fprintf(g,"\n");}}
void citire()
{
int i,j;
FILE*f=fopen("bmatrix.in","r");
fscanf(f,"%ld %ld\n",&n,&m);
for(i=1;i<=n;i++)
{ for(j=1;j<=m;j++)
fscanf(f,"%c",&a[i][j]);
fscanf(f,"\n");}
}
int check(int p, int k, int col)
{
int ok=1,i,j,s=0;
//a[col][p] - a[col][k];
i=p; j=k;
while(p<=k)
{
if (a[col][p]!=a[col][k]||a[col][p]=='1') {ok=0; break;}
else {p++; k--;}
}
if(ok==1&&col+1<=n) check(i,j,col+1);
else if (ok==1) return (col-linie+1)*(j-i+1);
else return (col-linie)*(j-i+1);
}
void max(int sol)
{
if (sol>solmax)
{
maxim=solmax; solmax=sol;
}
else if (sol>maxim) maxim=sol;
}
int main()
{
int i,j,k;
citire();
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]=='0')
for(k=m;k>=j;k--)
{
sol=0;
linie=i;
max(check(j,k,i));
}
afis();
fprintf(g,"\n%ld %ld",solmax,maxim);
}