Pagini recente » Cod sursa (job #769010) | Cod sursa (job #2381584) | Cod sursa (job #1558698) | Cod sursa (job #436090) | Cod sursa (job #2999392)
#include <fstream>
using namespace std;
ifstream cin("rj.in");
ofstream cout("rj.out");
int dirL[8]={-1,-1,0,1,1,1,0,-1};
int dirC[8]={0,1,1,1,0,-1,-1,-1};
struct ura1{
int l,c;
}coada1[10001];
struct ura2{
int l,c;
}coada2[10001];
int a[102][102], b[102][102];
int main()
{
int n,m,i,j,inc,sf,lin,col,ok;
///c este caracter si de aia trebuie sa punem char c!!!
char c;
cin>>n>>m;
cin.get(c);
inc=sf=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
///acum incep sa formez matricea si sa pun primul element din fiecare coada
///primul elem din coada1 este pozitia pe care se afla R
///primul elem din coada2 este pozitia pe care se afla J
cin.get(c);
if(c==' ')
a[i][j]=b[i][j]=0;
if(c=='X')
a[i][j]=b[i][j]=-1;
if(c=='R')
{
coada1[inc].l=i;
coada1[inc].c=j;
}
if(c=='J')
{
coada2[inc].l=i;
coada2[inc].c=j;
}
}
///el imi citeste si caracterul enter si de aia tb sa trec peste el
cin.get(c);
}
//for(i=1;i<=n;i++){
// for(j=1;j<=m;j++)
// cout<<b[i][j]<<" ";
//cout<<endl;
//}
//cout<<endl;
cout<<coada2[inc].l<<" "<<coada2[inc].c<<endl;
while(inc<=sf)
{
for(i=0;i<=7;i++)
{
lin=coada1[inc].l+dirL[i];
col=coada1[inc].c+dirC[i];
if(a[lin][col]==0)
{
a[lin][col]=a[coada1[inc].l][coada1[inc].c]+1;
sf++;
coada1[sf].l=lin;
coada1[sf].c=col;
}
}
inc++;
}
inc=sf=1;
while(inc<=sf)
{
for(i=0;i<=7;i++)
{
lin=coada2[inc].l+dirL[i];
col=coada2[inc].c+dirC[i];
if(b[lin][col]==0)
{
b[lin][col]=b[coada2[inc].l][coada2[inc].c]+1;
sf++;
coada2[sf].l=lin;
coada2[sf].c=col;
}
}
inc++;
}
ok=1;
for(i=1;i<=n && ok==1;i++)
for(j=1;j<=m && ok==1;j++)
{
if(a[i][j]==b[i][j])
{
cout<<a[i][j]<<" "<<i<<" "<<j;
ok=0;
}
}
return 0;
}