Pagini recente » Cod sursa (job #1430028) | Cod sursa (job #767923) | Cod sursa (job #2152954) | Cod sursa (job #2724200) | Cod sursa (job #404162)
Cod sursa(job #404162)
#include<fstream>
#include<stdio.h>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
char k[102];
int a[102][102],b[102][102],l;
int n,m,i,j,p,ok;
void romeo(int l)
{
p=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==l)
{
if(a[i-1][j]==0){a[i-1][j]=l+1;p++;}
if(a[i+1][j]==0){a[i+1][j]=l+1;p++;}
if(a[i-1][j-1]==0){a[i-1][j-1]=l+1;p++;}
if(a[i-1][j+1]==0){a[i-1][j+1]=l+1;p++;}
if(a[i+1][j-1]==0){a[i+1][j-1]=l+1;p++;}
if(a[i+1][j+1]==0){a[i+1][j+1]=l+1;p++;}
if(a[i][j-1]==0){a[i][j-1]=l+1;p++;}
if(a[i][j+1]==0){a[i][j+1]=l+1;p++;}
}
if(p!=0)
romeo(l+1);
}
void julieta(int l)
{
p=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(b[i][j]==l)
{
if(b[i-1][j]==0){b[i-1][j]=l+1;p++;}
if(b[i+1][j]==0){b[i+1][j]=l+1;p++;}
if(b[i-1][j-1]==0){b[i-1][j-1]=l+1;p++;}
if(b[i-1][j+1]==0){b[i-1][j+1]=l+1;p++;}
if(b[i+1][j-1]==0){b[i+1][j-1]=l+1;p++;}
if(b[i+1][j+1]==0){b[i+1][j+1]=l+1;p++;}
if(b[i][j-1]==0){b[i][j-1]=l+1;p++;}
if(b[i][j+1]==0){b[i][j+1]=l+1;p++;}
}
if(p!=0)
julieta(l+1);
}
int main()
{
fin>>n>>m;
for(i=0;i<=n+1;i++)
for(j=0;j<=m+1;j++)
{
a[i][j]=-1;
b[i][j]=-1;
}
fin.get();
for(i=1;i<=n;i++)
{
fin.getline(k,m+1,'\n');
for(j=0;j<m;j++)
{
if(k[j]=='R')
{
a[i][j+1]=1;
b[i][j+1]=-2;
}
else
if(k[j]==' ')
{
a[i][j+1]=0;
b[i][j+1]=0;
}
else
if(k[j]=='X')
{
a[i][j+1]=-1;
b[i][j+1]=-1;
}
else
if(k[j]=='J')
{
a[i][j+1]=-2;
b[i][j+1]=1;
}
}
}
romeo (1);
julieta (1);
ok=1;p=32000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if((a[i][j]==b[i][j])&&(a[i][j]>1))
if(a[i][j]<p)
p=a[i][j];
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if((a[i][j]==b[i][j])&&(a[i][j]==p))
{
fout<<a[i][j]<<" "<<i<<" "<<j<<'\n';
ok=0;
}
if(ok==0)
break;
}
if(ok==0)
break;
}
fin.close();
fout.close();
return 0;
}