Pagini recente » Cod sursa (job #2325507) | Cod sursa (job #3270516) | Cod sursa (job #225169) | Cod sursa (job #1375204) | Cod sursa (job #1400161)
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("lacuri.in");
ofstream fout("lacuri.out");
short int a[180][180],n,i,j,p,u,k,nrp,y;
struct Pozitie {short int lin,col;}c[31000],di,df,x;
int dl[5]={0,0,0,1,0};
int dc[5]={0,1,-1,0,-1};
int main()
{
fin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fin>>a[i][j];
for(i=0;i<=n+1;i++)
{
a[i][0]=0;
a[i][n+1]=0;
a[0][i]=0;
a[n+1][i]=0;
}
for(k=1;k<=n;k++)
for(j=1;j<=n;j++)
{
if(a[k][j]==1)
{
c[1].lin=k;
c[1].col=j;
p=u=1;
a[k][j]=-1;
while(p<=u)
{
di=c[p];
p++;
for(i=1;i<=3;i++)
{
df.lin=di.lin+dl[i];
df.col=di.col+dc[i];
if(a[df.lin][df.col]==1)
{
a[df.lin][df.col]=-1;
c[++u]=df;
break;
}
}
}
y=sqrt(u);
if((y*y)==u && ( (c[u].lin==(k+y-1) && c[u].col==j) || (c[u].lin==(k+y-1) && c[u].col==(j+y-1) ) ) )nrp++;
else
ver=1;
}
}
fout<<nrp<<'\n';
if(ver==0)
{
i=j=1;
while(i!=n && j!=n)
{
fout<<i<<" "<<j<<\n"
if(a[i+1][j+1]==0)
else
}
}
return 0;
}