Pagini recente » Istoria paginii utilizator/ctindogaru | Cod sursa (job #217029) | Cod sursa (job #2986043) | Cod sursa (job #2684645) | Cod sursa (job #331363)
Cod sursa(job #331363)
#include<fstream.h>
#include<values.h>
struct spec{int a,b,c;};
int main()
{int lim=1,c1j,c2j,c1r,c2r,i,j,n,m;
char aux[101];
spec v[101];
char 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]=aux[j];}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{if(a[i][j]=='R')
{c1r=i;
c2r=j;}
if(a[i][j]=='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]!='X'&&a[v[i].a-1][v[i].b]!='J')
{if(a[v[i].a-1][v[i].b]==' ')
{a[v[i].a-1][v[i].b]=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]-'0')
{a[v[i].a-1][v[i].b]=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]!='X'&&a[v[i].a+1][v[i].b]!='J')
{if(a[v[i].a+1][v[i].b]==' ')
{a[v[i].a+1][v[i].b]=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]-'0')
{a[v[i].a+1][v[i].b]=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]!='X'&&a[v[i].a][v[i].b-1]!='J')
{if(a[v[i].a][v[i].b-1]==' ')
{a[v[i].a][v[i].b-1]=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]-'0')
{a[v[i].a][v[i].b-1]=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]!='X'&&a[v[i].a][v[i].b+1]!='J')
{if(a[v[i].a][v[i].b+1]==' ')
{a[v[i].a][v[i].b+1]=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]-'0')
{a[v[i].a][v[i].b+0]=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]!='X'&&a[v[i].a-1][v[i].b]!='J')
{if(a[v[i].a-1][v[i].b]==' ')
{a[v[i].a-1][v[i].b]=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]-'0')
{a[v[i].a-1][v[i].b]=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]-'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]!='X'&&a[v[i].a+1][v[i].b]!='J')
{if(a[v[i].a+1][v[i].b]==' ')
{a[v[i].a+1][v[i].b]=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]-'0')
{a[v[i].a+1][v[i].b]=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+1==a[v[i].a+1][v[i].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]!='X'&&a[v[i].a][v[i].b-1]!='J')
{if(a[v[i].a][v[i].b-1]==' ')
{a[v[i].a][v[i].b-1]=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]-'0')
{a[v[i].a][v[i].b-1]=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+1==a[v[i].a][v[i].b-1]-'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]!='X'&&a[v[i].a][v[i].b+1]!='J')
{if(a[v[i].a][v[i].b+1]==' ')
{a[v[i].a][v[i].b+1]=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]-'0')
{a[v[i].a][v[i].b+1]=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+1==a[v[i].a][v[i].b+1]-'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