Pagini recente » Cod sursa (job #950391) | Monitorul de evaluare | Cod sursa (job #2011671) | Cod sursa (job #1817252) | Cod sursa (job #892985)
Cod sursa(job #892985)
#include <fstream>
using namespace std;
fstream f("rj.in",ios::in);
fstream g("rj.out",ios::out);
int x[100][100],i,j,m,n,w,e,p,q,r[102][102],ju[102][102],eleje,vege,aktx,akty,ujx,ujy,c,minii,szam,miniii,db,lep[10000];
bool latott[102][102];
char a;
struct adat
{
int x,y;
};
adat sz[10000];
const int xx[5]={0,-1,1,0,0};
const int yy[5]={0,0,0,-1,1};
int main()
{
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>noskipws>>a;
for(j=1;j<=m;j++)
{
f>>noskipws>>a;
if (a=='X') x[i][j]=1;
if (a==' ') x[i][j]=0;
if (a=='R')
{
x[i][j]=-1;
p=i;
q=j;
}
if (a=='J')
{
x[i][j]-2;
w=i;
e=j;
}
latott[i][j]=false;
}
}
/* for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
g<<x[i][j]<<" ";
g<<"\n";
}*/
eleje=1;
vege=1;
sz[eleje].x=p;
sz[eleje].y=q;
aktx=p;
akty=q;
latott[aktx][akty]=true;
p=0;q=0;
while(eleje<=vege)
{
aktx=sz[eleje].x;
akty=sz[eleje].y;
for(i=1;i<=4;i++)
{
ujx=xx[i]+aktx;
ujy=yy[i]+akty;
if (ujx>=1&&ujx<=n&&ujy>=1&&ujy<=m&&x[ujx][ujy]==0&&latott[ujx][ujy]==false)
{
vege++;
sz[vege].x=ujx;
sz[vege].y=ujy;
r[ujx][ujy]=r[aktx][akty]+1;
latott[ujx][ujy]=true;
}
/* if (ujx>=1&&ujx<=n&&ujy>=1&&ujy<=m&&x[ujx][ujy]==-2)
{
db++;
lep[db]=r[aktx][akty]+1;
if (lep[db]/2<miniii)
{ miniii=lep[db]/2;
p=ujx;
q=ujy;
}
}*/
}
eleje++;
}
/*g<<"\n";
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
g<<r[i][j]<<" ";
g<<"\n";
}*/
c=r[w][e]/2;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
if (r[i][j]==c)
{
p=i;
q=j;
}
}
g<<c<<" "<<p<<" "<<q;
/* for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
latott[i][j]=false;
}
eleje=1;
vege=1;
sz2[eleje].x=w;
sz2[eleje].y=e;
aktx=w;
akty=e;
latott[aktx][akty]=true;
while(eleje<=vege)
{
aktx=sz2[eleje].x;
akty=sz2[eleje].y;
for(i=1;i<=4;i++)
{
ujx=xx[i]+aktx;
ujy=yy[i]+akty;
if (ujx>=1&&ujx<=n&&ujy>=1&&ujy<=m&&x[ujx][ujy]==0&&latott[ujx][ujy]==false)
{
vege++;
sz2[vege].x=ujx;
sz2[vege].y=ujy;
ju[ujx][ujy]=ju[aktx][akty]+1;
latott[ujx][ujy]=true;
}
}
eleje++;
}
/* g<<"\n";
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
g<<ju[i][j]<<" ";
g<<"\n";
}*/
/*minii=999;
p=0;
q=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if (ju[i][j]==r[i][j]&&ju[i][j]!=0&&r[i][j]!=0)
{
szam=ju[i][j];
if (szam<minii)
{minii=szam;
p=i;
q=j;
}
}
}
}
g<<minii<<" "<<p<<" "<<q;*/
}