Cod sursa(job #2109983)

Utilizator AndreeaJngJinga Andreea AndreeaJng Data 20 ianuarie 2018 11:54:42
Problema Kdrum Scor 0
Compilator cpp Status done
Runda evaluare_cex_sv_cls_x_2 Marime 1.08 kb
#include <fstream>

using namespace std;

ifstream in ("alee.in");
ofstream ou ("alee.out");

int v[177][177],n,m;

struct coord{
    int lin,col;
};

coord gate,q[180*180],p,w;

int vl[]={-1,0,1,0};
int vc[]={0,1,0,-1};

int prim=1,ultim=1;

int main()
{
    int a,b,i,j;
    in>>n>>m;
    for (i=1;i<=m;++i)
    {
        in>>a>>b;
        v[a][b]=-1;
    }
    for (i=0;i<=n+1;++i)
    {
        v[i][0]=v[i][n+1]=v[0][i]=v[n+1][i]=-1;
    }
    in>>gate.lin>>gate.col>>a>>b;
    q[1].lin=gate.lin;
    q[1].col=gate.col;
    v[gate.lin][gate.col]=1;
    while (prim<=ultim && v[a][b]==0)
    {
        p.lin=q[prim].lin;
        p.col=q[prim].col;
        prim++;
        for (i=0;i<=3;++i)
        {
            w.lin=p.lin+vl[i];
            w.col=p.col+vc[i];
            if (v[w.lin][w.col]==0)
            {
                v[w.lin][w.col]=v[p.lin][p.col]+1;
                ultim++;
                q[ultim].lin=w.lin;
                q[ultim].col=w.col;
            }
        }
    }
    ou<<v[a][b]<<"\n";
    ou.close();
    return 0;
}