Cod sursa(job #863476)

Utilizator AndreicotunaCotuna-Coste Andrei Andreicotuna Data 23 ianuarie 2013 20:47:05
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.92 kb
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
char a[101][101];
int i,j,t[101][101],dl[]={-1,0,1,0,-1,-1,1,1},dc[]={0,1,0,-1,-1,1,-1,1},cs,ls,c,l,p,n,m;
void drum(int l,int c,int pas)
{
    int li,ci,j,i,q,sw,pmin;
    for(i=0;i<8;i++)
    {
        li=l+dl[i];
        ci=c+dc[i];
        if(li<=n&&li>=1 && ci<=m&&ci>=1)
            if(a[li][ci]==' ')
                t[li][ci]=pas;

            if(a[li][ci]=='J'&&pas%2==0)
                {
                    p=pas/2;
                    if(p<pmin)
                        {
                            sw=1;
                            pmin=p;
                            for(q=1;q<=n&&sw;q++)
                                for(j=1;j<=m&&sw;j++)
                                    if(t[q][j]==p)
                                    {
                                        sw=0;
                                        ls=q;
                                        cs=j;
                                    }
                        }
                    else if(p==pmin)
                        {   sw=1;
                            for(q=1;q<=n&&sw;q++)
                                for(j=1;j<=m&&sw;j++)
                                    if(t[q][j]==p&&cs>j)
                                    {
                                        sw=0;
                                        ls=q;
                                        cs=j;
                                    }
                        }
                    else drum(li,ci,pas+1);
                    t[li][ci]=0;
                }

    }
}
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            {f>>a[i][j];
             if(a[i][j]=='R') {l=i;c=j;}
            }
            cout<<l<<" "<<c;
    drum(l,c,2);
    g<<ls<<" "<<cs<<" "<<p;


    return 0;
}