Pagini recente » Cod sursa (job #1433029) | Cod sursa (job #1031439) | Cod sursa (job #2912831) | Cod sursa (job #2248446) | Cod sursa (job #901508)
Cod sursa(job #901508)
#include<fstream>
#include <string.h>
using namespace std;
int a[101][101],i,j,q[3][20001],u,p,l[101][101],max,k=0,sir[3][100000],c,d,n,m,r_l,r_c,x,y,j_l,j_c;
ofstream g("rj.out");
void init()
{
ifstream f("rj.in");
f>>n>>m;
char c;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{f.get(c);
if (c=='\n') f.get(c);
if(c==' ')
{a[i][j]=1;
l[i][j]=-1;
}
else if(c=='R')
{ r_l=i;
r_c=j;
l[i][j]=0;
a[i][j]=1;
}
else
if ( c=='J')
{j_l=i;
j_c=j;
a[i][j]=1;
l[i][j]=0;
}
else a[i][j]=-2;}
}
f.close();
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
g<<a[i][j]<<" ";
g<<endl;
}
}
void intr2(int c, int d)
{
u=u+1;
if(u>20000)
u=1;
q[1][u]=c;
q[2][u]=d;
}
void extr2(int &c, int &d)
{
p=p+1;
if(p>20000)
p=1;
c=q[1][p];
d=q[2][p];
}
void lee2(int x, int y)
{
p=0;u=0;
intr2(x,y);
while(p!=u)
{extr2(x,y);
if(x>1)
if(a[x-1][y]==1)
if(l[x-1][y]<l[x][y]+1)
{ l[x-1][y]=l[x][y]+1;
intr2(x-1,y);
}
if(x<n)
if(a[x+1][y]==1)
if(l[x+1][y]<l[x][y]+1)
{l[x+1][y]=l[x][y]|+1;
intr2(x+1,y);
}
if(y>1)
if(a[x][y-1]==1)
if(l[x][y-1]<l[x][y]+1)
{ l[x][y-1]=l[x][y]+1;
intr2(x,y-1);
}
if(y<n)
if(a[x][y+1]==1)
if(l[x][y+1]<l[x][y]+1)
{ l[x][y+1]=l[x][y]+1;
intr2(x,y+1);
}
}
}
void intr(int c, int d)
{
u=u+1;
if(u>20000)
u=1;
q[1][u]=c;
q[2][u]=d;
}
void extr(int &c, int &d)
{
p=p+1;
if(p>20000)
p=1;
c=q[1][p];
d=q[2][p];
}
void lee(int x, int y)
{
p=0;u=0;
intr(x,y);
while(p!=u)
{extr(x,y);
if(x>1)
if(a[x-1][y]==1)
if(l[x-1][y]<l[x][y]+1)
{ l[x-1][y]=l[x][y]+1;
intr(x-1,y);
}
if(x<n)
if(a[x+1][y]==1)
if(l[x+1][y]<l[x][y]+1)
{l[x+1][y]=l[x][y]|+1;
intr(x+1,y);
}
if(y>1)
if(a[x][y-1]==1)
if(l[x][y-1]<l[x][y]+1)
{ l[x][y-1]=l[x][y]+1;
intr(x,y-1);
}
if(y<n)
if(a[x][y+1]==1)
if(l[x][y+1]<l[x][y]+1)
{ l[x][y+1]=l[x][y]+1;
intr(x,y+1);
}
}
}
void scriere()
{int max,i_max,j_max;
max=-1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(l[i][j]>max)
{max=l[i][j];
i_max=i;
j_max=j;
}
g<<max<<" "<<i_max<<" "<<j_max;
}
int main()
{
init();
// lee(r_l,r_c);
//scriere();
return 0;}