Pagini recente » Cod sursa (job #574549) | Cod sursa (job #166593) | Cod sursa (job #1752695) | Cod sursa (job #121946) | Cod sursa (job #331479)
Cod sursa(job #331479)
#include<fstream.h>
#include<values.h>
struct spec{int a,b,c;};
struct matrice{char a,b;};
int main()
{int lim=1,c1j,c2j,c1r,c2r,i,j,n,m;
char aux[101];
spec v[10001];
matrice a[101][101];
ifstream q("rj.in");
ofstream w("rj.out");
q>>n>>m;
for(i=1;i<=n;i++)
{q.get();
q.get(aux,101);
for(j=0;j<m;j++)
{a[i][j+1].a=aux[j];
a[i][j+1].b='0';}}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{if(a[i][j].a=='R')
{c1r=i;
c2r=j;}
if(a[i][j].a=='J')
{c1j=i;
c2j=j;}}
v[1].a=c1r;
v[1].b=c2r;
v[1].c=1;
for(i=1;i<=lim;i++) //Vino,julieta mea!! :)
{if(v[i].a>1&&a[v[i].a-1][v[i].b].a!='X'&&a[v[i].a-1][v[i].b].a!='J'&&a[v[i].a-1][v[i].b].a!='R')
{if(a[v[i].a-1][v[i].b].a==' ')
{a[v[i].a-1][v[i].b].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a-1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a-1][v[i].b].a-'0')
{a[v[i].a-1][v[i].b].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a-1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}}
if(v[i].a<n&&a[v[i].a+1][v[i].b].a!='X'&&a[v[i].a+1][v[i].b].a!='J'&&a[v[i].a+1][v[i].b].a!='R')
{if(a[v[i].a+1][v[i].b].a==' ')
{a[v[i].a+1][v[i].b].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a+1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a+1][v[i].b].a-'0')
{a[v[i].a+1][v[i].b].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a+1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}}
if(v[i].b>1&&a[v[i].a][v[i].b-1].a!='X'&&a[v[i].a][v[i].b-1].a!='J'&&a[v[i].a][v[i].b-1].a!='R')
{if(a[v[i].a][v[i].b-1].a==' ')
{a[v[i].a][v[i].b-1].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a;
v[lim].b=v[i].b-1;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a][v[i].b-1].a-'0')
{a[v[i].a][v[i].b-1].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a;
v[lim].b=v[i].b-1;
v[lim].c=v[i].c+1;}}
if(v[i].b<n&&a[v[i].a][v[i].b+1].a!='X'&&a[v[i].a][v[i].b+1].a!='J'&&a[v[i].a][v[i].b+1].a!='R')
{if(a[v[i].a][v[i].b+1].a==' ')
{a[v[i].a][v[i].b+1].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a;
v[lim].b=v[i].b+1;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a][v[i].b+1].a-'0')
{a[v[i].a][v[i].b+0].a=v[i].c+'0';
lim++;
v[lim].a=v[i].a;
v[lim].b=v[i].b+1;
v[lim].c=v[i].c+1;}}}
v[1].a=c1j;
v[1].b=c2j;
v[1].c=1;
lim=1;
int na,nb,nc;
nc=MAXINT;
for(i=1;i<=lim;i++) //Vin, romica!!! :)
{if(v[i].a>1&&a[v[i].a-1][v[i].b].a!='X'&&a[v[i].a-1][v[i].b].a!='J'&&a[v[i].a-1][v[i].b].a!='R')
{if(a[v[i].a-1][v[i].b].a==' ')
{a[v[i].a-1][v[i].b].a=v[i].c+'0';
a[v[i].a-1][v[i].b].b='1';
lim++;
v[lim].a=v[i].a-1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a-1][v[i].b].a-'0')
{a[v[i].a-1][v[i].b].a=v[i].c+'0';
lim++;
a[v[i].a-1][v[i].b].b='1';
v[lim].a=v[i].a-1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}
else
if(v[i].c==a[v[i].a-1][v[i].b].a-'0'&&a[v[i].a-1][v[i].b].b=='0')
{if(v[i].c<nc)
{nc=v[i].c;
na=v[i].a-1;
nb=v[i].b;}}}
if(v[i].a<n&&a[v[i].a+1][v[i].b].a!='X'&&a[v[i].a+1][v[i].b].a!='J'&&a[v[i].a+1][v[i].b].a!='R')
{if(a[v[i].a+1][v[i].b].a==' ')
{a[v[i].a+1][v[i].b].a=v[i].c+'0';
lim++;
a[v[i].a+1][v[i].b].b='1';
v[lim].a=v[i].a+1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a+1][v[i].b].a-'0')
{a[v[i].a+1][v[i].b].a=v[i].c+'0';
lim++;
a[v[i].a+1][v[i].b].b='1';
v[lim].a=v[i].a+1;
v[lim].b=v[i].b;
v[lim].c=v[i].c+1;}
else
if(v[i].c==a[v[i].a+1][v[i].b].a-'0'&&a[v[i].a+1][v[i].b].b=='0')
{if(v[i].c<nc)
{nc=v[i].c;
na=v[i].a+1;
nb=v[i].b;}}}
if(v[i].b>1&&a[v[i].a][v[i].b-1].a!='X'&&a[v[i].a][v[i].b-1].a!='J'&&a[v[i].a][v[i].b-1].a!='R')
{if(a[v[i].a][v[i].b-1].a==' ')
{a[v[i].a][v[i].b-1].a=v[i].c+'0';
lim++;
a[v[i].a][v[i].b-1].b='1';
v[lim].a=v[i].a;
v[lim].b=v[i].b-1;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a][v[i].b-1].a-'0')
{a[v[i].a][v[i].b-1].a=v[i].c+'0';
a[v[i].a][v[i].b-1].b='1';
lim++;
v[lim].a=v[i].a;
v[lim].b=v[i].b-1;
v[lim].c=v[i].c+1;}
else
if(v[i].c==a[v[i].a][v[i].b-1].a-'0'&&a[v[i].a][v[i].b-1].b=='0')
{if(v[i].c<nc)
{nc=v[i].c;
na=v[i].a;
nb=v[i].b-1;}}}
if(v[i].b<n&&a[v[i].a][v[i].b+1].a!='X'&&a[v[i].a][v[i].b+1].a!='J'&&a[v[i].a][v[i].b+1].a!='R')
{if(a[v[i].a][v[i].b+1].a==' ')
{a[v[i].a][v[i].b+1].a=v[i].c+'0';
lim++;
a[v[i].a][v[i].b+1].b='1';
v[lim].a=v[i].a;
v[lim].b=v[i].b+1;
v[lim].c=v[i].c+1;}
else
if(v[i].c<a[v[i].a][v[i].b+1].a-'0')
{a[v[i].a][v[i].b+1].a=v[i].c+'0';
lim++;
a[v[i].a][v[i].b+1].b='1';
v[lim].a=v[i].a;
v[lim].b=v[i].b+1;
v[lim].c=v[i].c+1;}
else
if(v[i].c==a[v[i].a][v[i].b+1].a-'0'&&a[v[i].a][v[i].b+1].b=='0')
{if(v[i].c<nc)
{nc=v[i].c;
na=v[i].a;
nb=v[i].b+1;}}}}
w<<nc<<" "<<na<<" "<<nb; //intalnirea dintre ei.Scena asta ar trebui cenzurata :>
return 0;} //Si-am incalecat pe-o sa si v-am spus povestea asa