Cod sursa(job #2109995)

Utilizator LemnariuLemnariu Dan Lemnariu Data 20 ianuarie 2018 11:58:37
Problema Kdrum Scor 0
Compilator cpp Status done
Runda evaluare_cex_sv_cls_x_2 Marime 1.03 kb
#include <iostream>
#include <queue>
#include <fstream>
using namespace std;
struct pct
{int x,y;};
queue <pct> C;
int main()
{
    int M[177][177], N, L, p, q, x_start, y_start;
    int di[4]={0,0,-1,1}, dj[4]={-1,1,0,0};
    ifstream f("alee.in");
    f>>N>>L;
    for(int g=0;g<=N+1;g++)
    {
        M[N+1][g]=-1;
        M[g][N+1]=-1;
        M[0][g]=-1;
        M[g][0]=-1;
    }
    for(int g=1;g<=L;g++)
    {
        f>>p>>q;
        M[p][q]=-1;
    }
    f>>x_start>>y_start;
    M[x_start][y_start]=1;
    C.push ({x_start,y_start});
    while(!C.empty())
    {
        int i=C.front().x;
        int j=C.front().y;
        for(int k=0;k<=3;k++)
        {
            int in=i+di[k];
            int jn=j+dj[k];
            if((M[in][jn]==0)||(M[in][jn]>M[i][j]+1))
            {
                M[in][jn]=M[i][j]+1;
                C.push({in,jn});
            }
        }
        C.pop();
    }
    ofstream g("alee.out");
    f>>x_start>>y_start;
    g<<M[x_start][y_start];
    return 0;
}