Cod sursa(job #2110193)

Utilizator cosceexcosceex cosceex Data 20 ianuarie 2018 12:57:28
Problema Kdrum Scor 0
Compilator cpp Status done
Runda evaluare_cex_sv_cls_x_2 Marime 1.23 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("kdrum.in");
ofstream g("kdrum.out");

struct ll {
int lin,col;
};
deque<ll> c;
int dl[]={1,0,-1,0},dc[]={0,1,0,-1},v[51][51],o,p;

int main()
{
    int n,m,k,x1,x2,y1,y2;
    f>>n>>m>>k;
    f>>x1>>y1>>x2>>y2;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            f>>v[i][j];

    ll xy;
       xy.lin=x1;
       xy.col=y1;
       c.push_back(xy);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            if(v[i][j]!=0)
                v[i][j]=-1;
    v[xy.lin][xy.col]=1;
    while(!c.empty()&&v[x2][y2]==-1)
        {  //prim++;
          ll ss;
          ss=c.front();
            c.pop_front();
           for(k=0;k<4;k++)
             if(v[ss.lin+dl[k]][ss.col+dc[k]]!=0)
                { v[ss.lin+dl[k]][ss.col+dc[k]]=v[ss.lin][ss.col]+1;
                   //ultim++;
                   o=ss.lin;
                   p=ss.col;
                   ll xy1;
                   xy1.lin=o+dl[k];
                   xy1.col=p+dc[k];

                   //c.col.pop_front;
                   c.push_back(xy1);
                   //c.col.push_back(p+dc[k]);

                }

        }

    g<<v[x2][y2];
    return 0;
}