Pagini recente » Cod sursa (job #2682681) | Cod sursa (job #1240206) | Cod sursa (job #1336329) | Cod sursa (job #2028799) | Cod sursa (job #1130102)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
char q[101];
int n,m,i,j,ri,rj,ji,jj;
short l[101][101];
short c[100][2],cj[101][2],sr,sj;
short d[]={-1,0,1,0,1,-1,1,-1};
short o[]={0,-1,0,1,1,-1,-1,1};
void citire()
{ ifstream f("rj.in");
f>>n>>m;
for(i=1;i<=n;i++)
{f.get();f.get(q,101);
for(j=1; j<=m;j++)
{
if(q[j-1] =='X' ) l[i][j]=-1;
if(q[j-1] ==' ' ) l[i][j]=0;
if(q[j-1] =='R' ) {ri=i;rj=j;}
if(q[j-1] =='J' ) {ji=i;jj=j;}
}}}
ofstream g("rj.out");
void afis()
{
for(i=1;i<=n;i++) { for(j=1;j<=m;j++)
g<<l[i][j]<<" ";
g<<endl;
} }
int valid(int li, int co )
{ return li>0 && co>0 && li<=n && co<=m &&l[li][co]==0;}
void adaur(int x, int y)
{ sr++; c[sr][0]=x;c[sr][1]=y;}
void adauj(int x, int y)
{ sj++; cj[sj][0]=x;cj[sj][1]=y;}
int main()
{ citire();
adaur(ri,rj);
int k=0;
adauj(ji,jj);
l[ji][jj]=2;
l[ri][rj]=1;
int inc=1;
int inj=1;
while( inc<=sr && inj<=sj )
{ for(i=0;i<8;i++)
{ if( l[c[inc][0]+d[i]][c[inc][1]+o[i]]==2){ri=c[inc][0]+d[i]; rj=c[inc][1]+o[i]; inc=sr;}
if(valid(c[inc][0]+d[i],c[inc][1]+o[i])){
l[c[inc][0]+d[i]][c[inc][1]+o[i]]= 1; k++;
adaur(c[inc][0] + d[i],c[inc][1] + o[i]);
}}inc++;
for(i=0;i<8;i++)
{ if( l[cj[inj][0]+d[i]][cj[inj][1]+o[i]]==1){ri=cj[inj][0]+d[i];rj=cj[inj][1]+o[i]; inj=sj;}
if(valid(cj[inj][0]+d[i],cj[inj][1]+o[i])){
l[cj[inj][0]+d[i]][cj[inj][1]+o[i]]= 2;
adauj(cj[inj][0] + d[i],cj[inj][1] + o[i]);
}}inj++;
}
//g<<inc<<" "<<sr<<"\n";
g<<k<<" "<<ri<<" "<<rj;
//g<<"\n"; afis();
cout << "Hello world!" << endl;
return 0;
}