Pagini recente » Cod sursa (job #1298686) | Cod sursa (job #2702232) | Cod sursa (job #1242771) | Cod sursa (job #251276) | Cod sursa (job #1800043)
#include <fstream>
#include <cmath>
using namespace std;
int a[10002], b[10002], p, u, im, jm, lis, lii, ljs, lji;
short int n, i, j, ic, jc, k, nr, nr2;
double rat;
char ok;
int v[101][101];
int di[4] = {0, 1, 0, -1};
int dj[4] = {1, 0, -1, 0};
ifstream fin("lacuri.in");
ofstream fout("lacuri.out");
int main(){
fin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
fin>>v[i][j];
if(v[i][j]==1){
k++;
a[k]=i;
b[k]=j;
}
}
for(i=1;i<=k;i++){
if(v[a[i]][b[i]]==1){
nr2++;
int x[10002], y[10001];
x[1]=a[i];
y[1]=b[i];
lis = lii = x[1];
ljs = lji = y[1];
p = u = i;
while(p<=u){
ic=a[p];
jc=b[p];
for(j=0;j<4;j++){
im=ic+di[j];
jm=jc+dj[j];
if(v[im][jm]==1){
u++;
v[im][jm]=v[ic][jc]+1;
x[u]=im;
y[u]=jm;
if(im>lis)
lis=im;
if(im<lii)
lii=im;
if(jm>ljs)
ljs=jm;
if(jm<lji)
lji=jm;
}
}
p++;
}
rat=sqrt(u-i+1);
if(rat==(int)rat && x[1]==x[u]-rat+1 && y[1]==y[u]-rat+1 && lji==y[u] && ljs==y[1] && lis==x[1] && lii==x[u])
nr++;
fout<<x[u]<<" "<<y[u]<<" ";
}
}
fout<<nr;
if(nr2==nr){
}
return 0;
}