Cod sursa(job #1399416)

Utilizator mariana-geanina.stroeStroe Mariana Geanina mariana-geanina.stroe Data 24 martie 2015 18:53:41
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.87 kb
#include <iostream>
#include<fstream>
#include<cstring>
#include<iomanip>
using namespace std;

fstream f("rj.in");
ofstream g("rj.out");

 int a[10][10],b[10][10],i,j,romeoLin,romeoCol,julietaLin,julietaCol,n,m,ii,jj,distmin;
 char c[104];
void deplasari(int a[10][10],int liniePersonaj,int coloanaPersonaj)
{
 int d=1,ok=1,i,j;
 a[liniePersonaj][coloanaPersonaj]=1;
 while(ok==1)
 {
  ok=0;
  for(i=1;i<=n;i++)
   for(j=1;j<=m;j++)
   {
        if(a[i][j]==d)
        {
            if(a[i+1][j]==0)
            {
                a[i+1][j]=d+1;
                ok=1;
            }

            if(a[i][j+1]==0)
            {
                a[i][j+1]=d+1;
                ok=1;
            }

            if(a[i-1][j]==0 && i>1)
            {
                a[i-1][j]=d+1;
                ok=1;
            }

            if(a[i][j-1]==0 && j>1)
            {
                a[i][j-1]=d+1;
                ok=1;
            }

            if(a[i-1][j-1]==0 && i+j>2)
            {
                a[i-1][j-1]=d+1;
                ok=1;
            }

            if(a[i+1][j+1]==0)
            {
                a[i+1][j+1]=d+1;
                ok=1;
            }

            if(a[i+1][j-1]==0 && j>1)
            {
                a[i+1][j-1]=d+1;
                ok=1;
            }

            if(a[i-1][j+1]==0 && i>1)
            {
                a[i-1][j+1]=d+1;
                ok=1;
            }
        }
  }
  d++;
 }
}
int main()
{
f>>n>>m;
f.get();

 //fgets(x,m+1,f);
 for(i=1;i<=n;i++)
 {
     f.getline(c,104);
    for(j=0;j<m;j++)
    {
      //c=f.get();
      if(c[j]=='X')
      {
            a[i][j+1]=-1;
            b[i][j+1]=-1;
      }
      if(c[j]=='R')
      {
        romeoLin=i;
        romeoCol=j+1;
      }
      if(c[j]=='J')
      {
        julietaLin=i;
        julietaCol=j+1;
      }
    }
 }
 cout<<"a dp citire";
 for(i=1;i<=n;i++)
 {
     for(j=1;j<=m;j++)
       cout<<a[i][j]<<"  ";
    cout<<"\n";
 }

 deplasari(a,romeoLin,romeoCol);
 for(i=1;i<=n;i++)
 {
     for(j=1;j<=m;j++)
       cout<<a[i][j]<<"  ";
    cout<<"\n";
 }
 deplasari(b,julietaLin,julietaCol);
 for(i=1;i<=n;i++)
 {
     for(j=1;j<=m;j++)
       cout<<b[i][j]<<"  ";
    cout<<"\n";
 }
/*  for(i=1;i<=n;i++)
 {for(j=1;j<=m;j++)
   fprintf(g,"%d ",a[i][j]);
  fprintf(g,"\n");
  }
  fprintf(g,"\n");
  for(i=1;i<=n;i ++)
 {for(j=1;j<=m;j++)
   fprintf(g,"%d ",b[i][j]);
  fprintf(g,"\n");
  }               */
 for(i=1;i<=n;i++)
 for(j=1;j<=m;j++)
  if(a[i][j]==b[i][j] && a[i][j]>0)
  {
   if(distmin>a[i][j] || distmin==0)
   {
    distmin=a[i][j];
    ii=i;
    jj=j;
   }
   else if(distmin==a[i][j])
   {
    if(ii>i)
    {
    ii=i;
    jj=j;
    }
    else
     if(ii==i)
      if(jj>j)
       jj=j;

   }
  }
g<<distmin<<" "<<ii<<" "<<jj;
 return 0;
}