Cod sursa(job #1650396)

Utilizator paulstepanovStepanov Paul paulstepanov Data 11 martie 2016 18:05:58
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.66 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");

int n,m,a[105][105],X2,Y2,X3,Y3;

struct Cell
{
    short int x,y;
};

Cell Q[105*105];
void Read()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
    {
        char c;
        fin>>c;
        if(c=='X')
            a[i][j]=9;
        if(c=='0')
            a[i][j]=1;
        if(c=='R')
            {
                a[i][j]=2;
                X2=i;
                Y2=j;
            }
        if(c=='J')
            {a[i][j]=3;
             X3=i;
             Y3=j;
            }
    }
}

void Lee()
{
    int i,j,k;

    a[X2][Y2] = 2;

    Q[1].x = X2; Q[1].y = Y2;
    k = 1;


    for(int l = 1; l<=k; l++)
    {
        i = Q[l].x; j = Q[l].y;

        if(a[i-1][j] == 1)
        {
            a[i-1][j] = a[i][j] + 1;
            k++;
            Q[k].x = i-1;
            Q[k].y = j;
        }

        if(a[i+1][j] == 1)
        {
            a[i+1][j] = a[i][j] + 1;
            k++;
            Q[k].x = i+1;
            Q[k].y = j;
        }

        if(a[i][j+1] == 1)
        {
            a[i][j+1] = a[i][j] + 1;
            k++;
            Q[k].x = i;
            Q[k].y = j+1;
        }

        if(a[i][j-1] == 1)
        {
            a[i][j-1] = a[i][j] + 1;
            k++;
            Q[k].x = i;
            Q[k].y = j-1;
        }
    }
}

void Print()
{
    for(int i=0;i<=n+1;i++)
    {
        for(int j=0;j<=m+1;j++)
            cout<<a[i][j]<<" ";
        cout<<"\n";
    }
}
int main()
{
    Read();
    cout<<a[X3][Y3]/2;
}