Cod sursa(job #1800043)

Utilizator maria15Maria Dinca maria15 Data 7 noiembrie 2016 11:19:19
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.8 kb
#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;
}