Diferente pentru utilizator/tytus11 intre reviziile #2 si #5

Diferente intre titluri:

Profil tytus11
Titus Bazatu a.k.a. SEFU#1, tata banilor si bossu mafiotilor

Diferente intre continut:

== include(page="template/noprofile") ==
 
h2. Despre mine
 
_(completeaza aici: studii, an de absolvire, institutie de invatamant, locatie, profesori pregatitori, site personal ...)_#include <fstream>
 
using namespace std;
 
int x[120][120],w[20001],col[10001],lin[10001];
 
int main()
{
    int n,i,j,tot=0,OK=1,ok=1,b,vector=0,v,a,c,cc,lc,inc,sf,sum=1,kl[4]={-1,1,0,0},kc[4]={0,0,-1,1};
    ifstream f("lacuri.in");
    ofstream g("lacuri.out");
    f>>n;
    for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            f>>x[i][j];
        }
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    if(x[i][j]==1)
    {
        v=j+1;
        while(x[i][v]==1)
        {sum++;
        v++;}
        x[i][j]=-1;
        inc=1;
        sf=1;
        lin[sf]=i;
        col[sf]=j;
        while(inc<=sf)
        {for(c=0;c<=3;c++)
        {
            cc=col[inc]+kc[c];
            lc=lin[inc]+kl[c];
            if(x[lc][cc]==1)
            {
                x[lc][cc]=-1;
                sf++;
                lin[sf]=lc;
                col[sf]=cc;
            }
        }
        inc++;}
        for(a=i;a<i+sum;a++)
        for(b=j;b<j+sum;b++)
        if(x[a][b]!=-1)
        ok=0;
        if(ok==1)
        {
            for(a=j-1;a<sum+j;++a)
            {
                if(x[i-1][a]!=0)  ok=0;
                if(x[i+sum][a]!=0)  ok=0;
            }
            for(a=i-1;a<sum+i;++a)
            {
                if(x[a][j-1]!=0)  ok=0;
                if(x[a][j+sum]!=0)  ok=0;
            }
        }
        if(ok==1)
        tot++;
        else
        OK=0;
        sum=1;
        ok=1;
        inc=1;
        sf=1;
    }
    g<<tot<<'\n';
    if(OK==1)
    {
        x[1][1]=1;
        inc=1;
        sf=1;
        lin[sf]=1;
        col[sf]=1;
        while(inc<=sf)
        {for(c=0;c<=3;c++)
        {
            lc=lin[inc]+kl[c];
            cc=col[inc]+kc[c];
            if(lc>0&&lc<=n&&cc>0&&cc<=n)
            if(x[lc][cc]==0)
            {
                x[lc][cc]=x[lin[inc]][col[inc]]+1;
                sf++;
                lin[sf]=lc;
                col[sf]=cc;
            }
        }
        inc++;}
        cc=n;
        lc=n;
        v=x[n][n];
        while(v!=1)
        for(c=0;c<=3;c++)
        if(x[lc+kl[c]][cc+kc[c]]==v-1)
        {
            vector++;
            w[vector]=cc+kc[c];
            vector++;
            w[vector]=lc+kl[c];
            lc=lc+kl[c];
            cc=cc+kc[c];
            v--;
            break;
        }
    }
    for(a=vector/2;a>0;a--)
    g<<w[2*a]<<" "<<w[2*a-1]<<'\n';
    g<<n<<" "<<n<<'\n';
    f.close();
    g.close();
}
 
h2. Distinctii primite
 
* _(completeaza aici: locuri obtinute la concursuri de informatica)_
 
h2. Prieteni pe infoarena
 
* _(completeaza aici: link-uri catre profilele altor utilizatori infoarena pe care ii cunosti)_
 

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.