Cod sursa(job #2551159)

Utilizator Guccifer2429Julien Iancu Guccifer2429 Data 19 februarie 2020 16:35:44
Problema Rj Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <iostream>
#include <queue>
#include <fstream>
using namespace std;
ifstream fin("alee.in");
ofstream fout("alee.out");
queue < pair<int ,int> > q;
int x1,y1,x2,y2,n,m;
int v[176][176];
int di[]={-1,0,1,0};
int dj[]={0,1,0,-1};
void citire()
{
    fin>>n>>m;
    int i,j;
    for(int c=1;c<=m;c++)
    {
        fin>>i>>j;
        v[i][j]=-1;
    }
    fin>>x1>>y1>>x2>>y2;
    v[x1][y1]=1;
}
bool verif(int i ,int j)
{
    if(!(i>0 && i<=n && j>0 && j<=n) || v[i][j]!=0)
        return false;
    return true;
}
void lee()
{
    q.push(make_pair(x1,y1));
    while(!q.empty() && v[x2][y2]==0)
    {
        int i,j,inou,jnou;
        i=q.front().first;
        j=q.front().second;
        q.pop();
        for(int k=0;k<=3;k++)
        {
            inou=i+di[k];
            jnou=j+dj[k];
            if(verif(inou,jnou))
            {
                v[inou][jnou]=v[i][j]+1;
                q.push(make_pair(inou,jnou));
            }
        }
    }
}
int main()
{
    citire();
    lee();
    fout<<v[x2][y2];

}