Pagini recente » Cod sursa (job #2083522) | Cod sursa (job #971023) | Cod sursa (job #2645721) | Cod sursa (job #1942635) | Cod sursa (job #150250)
Cod sursa(job #150250)
#include<fstream.h>
int a[300][300]={1},k,poz,indl[100],indc[100];
void fill(int i,int j)
{k++;
if (a[i][j]==0)
{
a[i][j]=1;
indl[++poz]=i-1;
indc[poz]=j;
fill(i-1,j);
indl[++poz]=i-1;
indc[poz]=j+1;
fill(i-1,j+1);
indl[++poz]=i;
indc[poz]=j+1;
fill(i,j+1);
indl[++poz]=i+1;
indc[poz]=j+1;
fill(i+1,j+1);
indl[++poz]=i+1;
indc[poz]=j;
fill(i+1,j);
indl[++poz]=i+1;
indc[poz]=j-1;
fill(i+1,j-1);
indl[++poz]=i;
indc[poz]=j-1;
fill(i,j-1);
indl[++poz]=i-1;
indc[poz]=j-1;
fill(i-1,j-1);
}
}
void main()
{int n,m,p,q,l,maxl,minl,maxc,minc,y,x,max,i,j,v[100];
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>>a[i][j];
int gata;
do
{gata=0;
for(i=1;i<=n&&!gata;i++)
for(j=1;j<=m&&!gata;j++)
if(a[i][j]==0)
{p=i;
q=j;
gata=1;}
k=0;
fill(p,q);
for(i=1;i<=n;i++)
{for(j=1;j<=m;i++)
cout<<a[i][j]<<' ';
cout<<endl;}
maxl=indl[1];minl=indl[1];
for(i=1;i<=poz;i++)
{if(maxl<indl[i])
maxl=indl[i];
if(minl>indl[i])
minl=indl[i];}
maxc=indc[1];minc=indc[1];
for(i=1;i<=poz;i++)
{if(maxc<indc[i])
maxc=indc[i];
if(minc>indc[i])
minc=indc[i];}
y=(maxl-minl)*(maxc-minc);
if(y<=x)
v[++l]=k;
}
while(gata==1);
/*max=v[1];
for(i=1;i<=l;i++)
if(max<v[i])
max=v[i];
g<<max;*/
f.close();
g.close();
}