Pagini recente » Cod sursa (job #2878454) | Cod sursa (job #667270) | Cod sursa (job #423008) | Cod sursa (job #825573) | Cod sursa (job #1399416)
#include <iostream>
#include<fstream>
#include<cstring>
#include<iomanip>
using namespace std;
fstream f("rj.in");
ofstream g("rj.out");
int a[10][10],b[10][10],i,j,romeoLin,romeoCol,julietaLin,julietaCol,n,m,ii,jj,distmin;
char c[104];
void deplasari(int a[10][10],int liniePersonaj,int coloanaPersonaj)
{
int d=1,ok=1,i,j;
a[liniePersonaj][coloanaPersonaj]=1;
while(ok==1)
{
ok=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(a[i][j]==d)
{
if(a[i+1][j]==0)
{
a[i+1][j]=d+1;
ok=1;
}
if(a[i][j+1]==0)
{
a[i][j+1]=d+1;
ok=1;
}
if(a[i-1][j]==0 && i>1)
{
a[i-1][j]=d+1;
ok=1;
}
if(a[i][j-1]==0 && j>1)
{
a[i][j-1]=d+1;
ok=1;
}
if(a[i-1][j-1]==0 && i+j>2)
{
a[i-1][j-1]=d+1;
ok=1;
}
if(a[i+1][j+1]==0)
{
a[i+1][j+1]=d+1;
ok=1;
}
if(a[i+1][j-1]==0 && j>1)
{
a[i+1][j-1]=d+1;
ok=1;
}
if(a[i-1][j+1]==0 && i>1)
{
a[i-1][j+1]=d+1;
ok=1;
}
}
}
d++;
}
}
int main()
{
f>>n>>m;
f.get();
//fgets(x,m+1,f);
for(i=1;i<=n;i++)
{
f.getline(c,104);
for(j=0;j<m;j++)
{
//c=f.get();
if(c[j]=='X')
{
a[i][j+1]=-1;
b[i][j+1]=-1;
}
if(c[j]=='R')
{
romeoLin=i;
romeoCol=j+1;
}
if(c[j]=='J')
{
julietaLin=i;
julietaCol=j+1;
}
}
}
cout<<"a dp citire";
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
deplasari(a,romeoLin,romeoCol);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
deplasari(b,julietaLin,julietaCol);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<b[i][j]<<" ";
cout<<"\n";
}
/* for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
fprintf(g,"%d ",a[i][j]);
fprintf(g,"\n");
}
fprintf(g,"\n");
for(i=1;i<=n;i ++)
{for(j=1;j<=m;j++)
fprintf(g,"%d ",b[i][j]);
fprintf(g,"\n");
} */
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j] && a[i][j]>0)
{
if(distmin>a[i][j] || distmin==0)
{
distmin=a[i][j];
ii=i;
jj=j;
}
else if(distmin==a[i][j])
{
if(ii>i)
{
ii=i;
jj=j;
}
else
if(ii==i)
if(jj>j)
jj=j;
}
}
g<<distmin<<" "<<ii<<" "<<jj;
return 0;
}