Cod sursa(job #2780884)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 8 octombrie 2021 07:22:48
Problema Rj Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<bits/stdc++.h>
#define W(A,I,J) A[I][J]=1;c.push(make_pair(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");
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<pair<int,int> > c;
int main()
{
    s>>n>>m;
    for(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;
        }
    for(W(a,o,q),W(b,k,l),k=100000,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;
}