Cod sursa(job #2499912)

Utilizator N3ctar1eNectarie Tulea N3ctar1e Data 26 noiembrie 2019 22:28:08
Problema Rj Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.93 kb
#include <iostream>
#include <fstream>
using namespace std;
struct ura{int l,c;};
ura coada[10001];
ifstream fin("rj.in");
ofstream fout("rj.out");
int n,m,i,j,lj,cj,lr,cr;
int r[102][102],mj[102][102];
int dirl[8]={-1,0,1,0,1,1,-1,-1};
int dirc[8]={0,1,0,-1,1,-1,1,-1};
void prelucrare(int lp,int cp,int a[102][102])
{
    int sf=1,inc=1,lin,col;
    coada[1].l=lp;
    coada[1].c=cp;
    while(inc<=sf)
    {
        for(i=0;i<8;i++)
        {
            lin=coada[inc].l+dirl[i];
            col=coada[inc].c+dirc[i];
            if(a[lin][col]==0)
            {
                sf++;
                coada[sf].l=lin;
                coada[sf].c=col;
                a[lin][col]=a[coada[inc].l][coada[inc].c]+1;
            }
        }
        inc++;

    }
}
int main()
{
    int inc=1,sf=1,lin,col,minn;
    char s,str[101];
    fin>>n>>m;
    for(i=0;i<=n+1;i++)
    {
        r[i][0]=mj[i][0]=-1;
        r[i][m+1]=mj[i][m+1]=-1;

    }
    for(i=0;i<=m+1;i++)
    {
        r[0][i]=mj[0][i]=-1;
        r[n+1][i]=mj[n+1][i]=-1;
    }
    fin.get(s);
    for(i=1;i<=n;i++)
    {
        fin.getline(str+1,m+1);
        for(j=1;j<=m;j++)
        {
            if(str[j]=='X')
            {
                r[i][j]=-1;
                mj[i][j]=-1;
            }
            if(str[j]=='R')
            {
                mj[i][j]=0;
                lr=i;
                cr=j;
            }
            if(s=='J')
            {
                r[i][j]=0;
                lj=i;
                cj=j;
            }
            mj[i][j]=r[i][j];
        }

    }
    prelucrare(lj,cj,mj);
    prelucrare(lr,cr,r);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
    {
        if(r[i][j]==mj[i][j]&&r[i][j]<minn&&r[i][j]!=0&&r[i][j]!=-1)
        {
            lin=i;
            col=j;
            minn=r[i][j];
        }
    }
    fout<<minn<<" "<<lin<<" "<<col;
    return 0;
}