Cod sursa(job #2139367)

Utilizator NinjaCubeMihai Radovici NinjaCube Data 22 februarie 2018 14:29:55
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.97 kb
#include <bits/stdc++.h>
using namespace std;
char c[105][105],str[110];
int i,m,n,a,j,sri,sji,srj,sjj,rh[105][105],jh[105][105];
ifstream fin ("rj.in");
ofstream fout ("rj.out");
void citire(){
for (i=1;i<=n;i++){
        fin.getline(str,m+1);
for (j=1;j<=m;j++)
{
    c[i][j]=str[j-1];
    if (c[i][j]=='R'){
        sri=i;
        srj=j;
    }
    if (c[i][j]=='J'){
        sji=i;
        sjj=j;
    }

}}
 }
void leer(int li, int lj, int b){

    rh[li][lj]=b;
    if(c[li-1][lj]==' '&&rh[li-1][lj]==0)
        leer(li-1,lj,b+1);
    if(c[li][lj-1]==' '&&rh[li][lj-1]==0)
        leer(li,lj-1,b+1);
    if(c[li-1][lj-1]==' '&&rh[li-1][lj-1]==0)
        leer(li-1,lj-1,b+1);
    if(c[li-1][lj+1]==' '&&rh[li-1][lj+1]==0)
        leer(li-1,lj+1,b+1);
    if(c[li+1][lj]==' '&&rh[li+1][lj]==0)
        leer(li+1,lj,b+1);
    if(c[li][lj+1]==' '&&rh[li][lj+1]==0)
        leer(li,lj+1,b+1);
    if(c[li+1][lj+1]==' '&&rh[li+1][lj+1]==0)
        leer(li+1,lj+1,b+1);
    if(c[li+1][lj-1]==' '&&rh[li+1][lj-1]==0)
        leer(li+1,lj-1,b+1);

}
void leej(int li, int lj, int b){
    jh[li][lj]=b;
    if(c[li-1][lj]==' '&&jh[li-1][lj]==0)
        leej(li-1,lj,b+1);
    if(c[li][lj-1]==' '&&jh[li][lj-1]==0)
        leej(li,lj-1,b+1);
    if(c[li-1][lj-1]==' '&&jh[li-1][lj-1]==0)
        leej(li-1,lj-1,b+1);
    if(c[li-1][lj+1]==' '&&jh[li-1][lj+1]==0)
        leej(li-1,lj+1,b+1);
    if(c[li+1][lj]==' '&&jh[li+1][lj]==0)
        leej(li+1,lj,b+1);
    if(c[li][lj+1]==' '&&jh[li][lj+1]==0)
        leej(li,lj+1,b+1);
    if(c[li+1][lj+1]==' '&&jh[li+1][lj+1]==0)
        leej(li+1,lj+1,b+1);
    if(c[li+1][lj-1]==' '&&jh[li+1][lj-1]==0)
        leej(li+1,lj-1,b+1);

}
int main()
{
    fin>>n>>m;
    fin.getline(str,m+1);
    citire();
    leer(sri,srj,1);
    leej(sji,sjj,1);
    for (i=1;i<=n;i++)
    for(j=1;j<=m;j++){
    if (rh[i][j]==jh[i][j]&&rh[i][j]>0)
        fout<<rh[i][j]-1<<" "<<i<<" "<<j;
    }
    return 0;
}