Pagini recente » Istoria paginii runda/simulare-cartita-06 | Cod sursa (job #2022281) | Istoria paginii runda/r3capitusulare/clasament | Cod sursa (job #1900240) | Cod sursa (job #1650396)
#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;
}