Cod sursa(job #2327966)

Utilizator testEMTest Surse testEM Data 25 ianuarie 2019 11:55:25
Problema Arbore partial de cost minim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
#define maxx 999999
using namespace std;
ifstream f("alee.in");
ofstream g("alee.out");
bool viz[177][177];
short dx[]={1,-1,0,0},dy[]={0,0,1,-1},m[177][177];
void lee(int x,int y)
{
    for(int i=0;i<4;i++)
    {
        if(viz[x+dx[i]][y+dy[i]]==0)
        {
                m[x+dx[i]][y+dy[i]]=m[x][y]+1;
                viz[x+dx[i]][y+dy[i]]=1;
                lee(x+dx[i],y+dy[i]);
        }
        else
        {
            if(m[x+dx[i]][y+dy[i]]>m[x][y]+1)
            {
                m[x+dx[i]][y+dy[i]]=m[x][y]+1;
                lee(x+dx[i],y+dy[i]);
            }
        }
    }
}
int main()
{
    int n,p,i;
    f>>n>>p;
    for(i=1;i<=p;i++)
    {
        int x,y;
        f>>x>>y;
        viz[x][y]=1;
    }
    int x1,y1,x2,y2;
    f>>x1>>y1>>x2>>y2;
    for(i=0;i<=n+1;i++)
    {
        viz[i][n+1]=1;
        viz[i][0]=1;
        viz[0][i]=1;
        viz[n+1][i]=1;
    }
    viz[x1][y1]=1;
    m[x1][y1]=1;
    lee(x1,y1);
    g<<m[x2][y2];
    return 0;
}