Pagini recente » Monitorul de evaluare | Istoria paginii monthly-2014/runda-4 | Istoria paginii utilizator/fake_account | christmas-balls | Cod sursa (job #1998840)
#include<fstream>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int a[101][101];
pair <int,int> coada[10003];
int main()
{
int i,j,n,m,lin[9]= {0,0,0,1,-1,1,-1,1,-1},col[9]= {0,1,-1,0,0,1,1,-1,-1},k=1,l=3,raspuns1,raspuns2,ok=0,raspuns3;
char c;
fin>>n>>m;
fin.get(c);
for(i=1; i<=n; i++)
{for(j=1; j<=m+1; j++)
{
fin.get(c);
if(c!='\n')
if(c=='X')
a[i][j]=-1;
else
if(c=='R')
{
coada[1].first=i;
coada[1].second=j;
}
else if(c=='J')
{
coada[2].first=i;
coada[2].second=j;
a[i][j]=10001;
}
if(c=='\n')
break;
}
}
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
fout<<a[i][j]<<" ";
fout<<'\n';
}
for(j=0; j<=m+1; j++)
{
a[0][j]=-1;
a[n+1][j]=-1;
}
for(i=0; i<=n+1; i++)
{
a[i][0]=-1;
a[i][m+1]=-1;
}
while(k<=l)
{
for(i=1; i<=8; i++)
{
if(a[coada[k].first+lin[i]][coada[k].second+col[i]]>10000 && a[coada[k].first][coada[k].second]<10000)
{
raspuns1=coada[k].first+lin[i];
raspuns2=coada[k].second+col[i];
raspuns3=a[coada[k].first][coada[k].second]+2;
ok=1;
break;
}
else if(a[coada[k].first+lin[i]][coada[k].second+col[i]]<10000 && a[coada[k].first][coada[k].second]>10000 && a[coada[k].first+lin[i]][coada[k].second+col[i]]>0)
{
raspuns1=coada[k].first+lin[i];
raspuns2=coada[k].second+col[i];
raspuns3=a[coada[k].first][coada[k].second]-9999;
ok=1;
break;
}
else if(a[coada[k].first+lin[i]][coada[k].second+col[i]]==0)
{
a[coada[k].first+lin[i]][coada[k].second+col[i]]=a[coada[k].first][coada[k].second]+1;
coada[l].first=coada[k].first+lin[i];
coada[l].second=coada[k].second+col[i];
l++;
}
}
if(ok==1)
break;
k++;
}
fout<<raspuns3<<" "<<raspuns1<<" "<<raspuns2;
}