Cod sursa(job #892985)

Utilizator ordogfiokaMegyesi Attila ordogfioka Data 26 februarie 2013 12:30:53
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.25 kb
#include <fstream>
using namespace std;
fstream f("rj.in",ios::in);
fstream g("rj.out",ios::out);
int x[100][100],i,j,m,n,w,e,p,q,r[102][102],ju[102][102],eleje,vege,aktx,akty,ujx,ujy,c,minii,szam,miniii,db,lep[10000];
bool latott[102][102];
char a;
struct adat
{
    int x,y;
};
adat sz[10000];
const int xx[5]={0,-1,1,0,0};
const int yy[5]={0,0,0,-1,1};

int main()
{
   f>>n>>m;

   for(i=1;i<=n;i++)
   {
       f>>noskipws>>a;
       for(j=1;j<=m;j++)
       {
           f>>noskipws>>a;
           if (a=='X') x[i][j]=1;
           if (a==' ') x[i][j]=0;
           if (a=='R')
           {
               x[i][j]=-1;
               p=i;
               q=j;
            }
           if (a=='J')
           {
               x[i][j]-2;
               w=i;
               e=j;
           }
           latott[i][j]=false;
       }
   }

 /*  for(i=1;i<=n;i++)
   {
       for(j=1;j<=m;j++)
       g<<x[i][j]<<" ";
       g<<"\n";
   }*/

   eleje=1;
   vege=1;
    sz[eleje].x=p;
    sz[eleje].y=q;
   aktx=p;
   akty=q;
   latott[aktx][akty]=true;
    p=0;q=0;
   while(eleje<=vege)
   {
        aktx=sz[eleje].x;
        akty=sz[eleje].y;
       for(i=1;i<=4;i++)
       {
           ujx=xx[i]+aktx;
           ujy=yy[i]+akty;

       if (ujx>=1&&ujx<=n&&ujy>=1&&ujy<=m&&x[ujx][ujy]==0&&latott[ujx][ujy]==false)
       {
          vege++;
          sz[vege].x=ujx;
          sz[vege].y=ujy;
          r[ujx][ujy]=r[aktx][akty]+1;
          latott[ujx][ujy]=true;
       }
      /* if (ujx>=1&&ujx<=n&&ujy>=1&&ujy<=m&&x[ujx][ujy]==-2)
       {
           db++;
           lep[db]=r[aktx][akty]+1;
           if (lep[db]/2<miniii)
           {    miniii=lep[db]/2;
                p=ujx;
                q=ujy;
           }
       }*/
       }
       eleje++;
   }



/*g<<"\n";
   for(i=1;i<=n;i++)
   {
       for(j=1;j<=m;j++)
       g<<r[i][j]<<" ";
       g<<"\n";
   }*/
   c=r[w][e]/2;
   for(i=1;i<=n;i++)
   {
       for(j=1;j<=m;j++)
       if (r[i][j]==c)
       {
           p=i;
            q=j;
       }
   }
 g<<c<<" "<<p<<" "<<q;
  /* for(i=1;i<=n;i++)
   {for(j=1;j<=m;j++)
   latott[i][j]=false;
   }

   eleje=1;
   vege=1;
    sz2[eleje].x=w;
    sz2[eleje].y=e;
   aktx=w;
   akty=e;
   latott[aktx][akty]=true;

   while(eleje<=vege)
   {
        aktx=sz2[eleje].x;
        akty=sz2[eleje].y;
       for(i=1;i<=4;i++)
       {
           ujx=xx[i]+aktx;
           ujy=yy[i]+akty;

       if (ujx>=1&&ujx<=n&&ujy>=1&&ujy<=m&&x[ujx][ujy]==0&&latott[ujx][ujy]==false)
       {
          vege++;
          sz2[vege].x=ujx;
          sz2[vege].y=ujy;
          ju[ujx][ujy]=ju[aktx][akty]+1;
          latott[ujx][ujy]=true;
       }
       }
       eleje++;
   }
  /*  g<<"\n";
    for(i=1;i<=n;i++)
   {
       for(j=1;j<=m;j++)
       g<<ju[i][j]<<" ";
       g<<"\n";
   }*/
   /*minii=999;
   p=0;
   q=0;
   for(i=1;i<=n;i++)
   {
       for(j=1;j<=m;j++)
       {
           if (ju[i][j]==r[i][j]&&ju[i][j]!=0&&r[i][j]!=0)
            {
                szam=ju[i][j];

            if (szam<minii)
            {minii=szam;
                p=i;
                q=j;
            }
       }
   }
   }
   g<<minii<<" "<<p<<" "<<q;*/
   }