Pagini recente » Cod sursa (job #2727493) | Cod sursa (job #1603007) | Cod sursa (job #646161) | Cod sursa (job #2368710) | Cod sursa (job #2350309)
#include <fstream>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
int n,m,a[101][101],b[101][101],mi,lm,cm;
int prx,pry,pjx,pjy;
int c[2][10001],ic,sc;
void cit()
{
char c[101];
int i=0,j;
f>>n>>m;
f.getline(c,101);
for(i=1; i<=n; i++)
{
f.getline(c,101);
for(j=0; j<m; j++)
{
if(c[j]==' ')
a[i][j+1]=b[i][j+1]=0;
if(c[j]=='X')
a[i][j+1]=b[i][j+1]=-1;
if(c[j]=='R')
{
prx=i;
pry=j+1;
a[i][j+1]=1;
b[i][j+1]=0;
}
if(c[j]=='J')
{
a[i][j+1]=0;
b[i][j+1]=1;
pjx=i;
pjy=j+1;
}
}
}
for(i=1; i<=n+1; i++)
{
a[i][0]=b[i][0]=-1;
a[i][m+1]=b[i][m+1]=-1;
}
for(i=1; i<=m+1; i++)
{
a[0][i]=b[0][i]=-1;
a[n+1][i]=b[n+1][i]=-1;
}
}
void rez(int z[101][101],int x,int y)
{
ic=sc=1;
int l,s;
c[1][ic]=x;
c[2][ic]=y;
g<<x<<' ' << y << endl;
g<<c[1][ic] << ' '<< c[2][ic]<<endl;
z[x][y]=1;
while(ic<=sc)
{
l=c[1][ic];
s=c[2][ic];
if(!z[l-1][s])
{
sc++;
c[1][sc]=l-1;
c[2][sc]=s;
z[l-1][s]=z[l][s]+1;
}
if(!z[l+1][s])
{
sc++;
c[1][sc]=l+1;
c[2][sc]=s;
z[l+1][s]=z[l][s]+1;
}
if(!z[l][s-1])
{
sc++;
c[1][sc]=l;
c[2][sc]=s-1;
z[l][s-1]=z[l][s]+1;
}
if(!z[l][s+1])
{
sc++;
c[1][sc]=l;
c[2][sc]=s+1;
z[l][s+1]=z[l][s]+1;
}
ic++;
}
for(int i=1;i<=2;i++)
{
for(int j=1;j<=sc;j++)
g<<c[i][j]<<' ';
g<<endl;
}
}
void afis(int z[101][101])
{
int i,j;
for(i=0; i<=n+1; i++)
{
for(j=0; j<=m+1; j++)
g<<z[i][j]<<' ';
g<<endl;
}
}
int main()
{
cit();
ic=sc=1;
rez(a,prx,pry);
ic=sc=1;
rez(b,pjx,pjy);
afis(a);
g<<endl;
afis(b);
int i,j;
mi=n*m+1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j] && a[i][j]>0)
if(a[i][j]<mi)
{
mi=a[i][j];
lm=i;
cm=j;
}
g<<mi<<' '<<lm<<' '<<cm;
}