Cod sursa(job #2790187)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 28 octombrie 2021 16:19:26
Problema Rj Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<bits/stdc++.h>
#define W(A,I,J) A[I][J]=1;c.push({I,J});while(c.size()){p=c.front();c.pop();for(i=0;i<8;++i){I=p.first+w[i];J=p.second+z[i];if(I>0&&I<=n&&J>0&&J<=m&&!A[I][J])A[I][J]=A[p.first][p.second]+1,c.push({I,J});}}
using namespace std;
ifstream s("rj.in");
ofstream t("rj.out");
#define P pair<int,int>
string v;
int a[101][101],b[101][101],w[]={0,-1,0,1,-1,1,1,-1,},z[]={-1,0,1,0,1,1,-1,-1},n,m,k,l,o,q,i,j;
queue<P> c;
int main()
{
    for(s>>n>>m,getline(s,v);i<n;++i)
        for(getline(s,v),j=0;j<m;++j) {
            if(v[j]=='R')
                o=i+1,q=j+1;
            if(v[j]=='J')
                k=i+1,l=j+1;
            if(v[j]=='X')
                a[i+1][j+1]=b[i+1][j+1]=-1;
        }
    W(a,o,q);
    W(b,k,l);
    for(k=1e5,i=1;i<n;++i)
        for(j=1;j<m;++j)
            if(a[i][j]==b[i][j]&&k>a[i][j]&&a[i][j]>0)
                k=a[i][j],o=i,q=j;
    t<<k<<" "<<o<<" "<<q;
    return 0;
}