Cod sursa(job #1003220)

Utilizator victor_crivatCrivat Victor victor_crivat Data 29 septembrie 2013 22:45:35
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#include <cstring>
#define inf 100000
using namespace std;
char a[1000000];
ifstream f("rj.in");
ofstream g("rj.out");
bool ok;
const int dx[4]={-1,0,+1,0};
const int dy[4]={0,+1,0,-1};
int v[1000][1000],i,j,m,n,l,c,x,y,mm;
void lee(int v[1000][1000])
{int k,i,j,l;
    k=0;
    ok=true;
    while(ok==true)
{ok=false;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (v[i][j]==k)
{for (l=0;l<=3;l++)
    if (v[i+dx[l]][j+dy[l]]==inf) {v[i+dx[l]][j+dy[l]]=k+1;ok=true;}
}
k++;
}
}
int main()
{f>>n>>m;
for (i=1;i<=n;i++)
{f.get();
    f.get(a,1000);
for (j=0;j<=m-1;j++)
{if (a[j]=='X') v[i][j+1]=-1;
if (a[j]==' ') v[i][j+1]=inf;
if (a[j]=='R'||a[j]=='J') v[i][j+1]=0;
}
}
lee(v);
mm=inf;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (l=0;l<=3;l++)
for (c=0;c<=3;c++)
if (l!=c&&v[i+dx[l]][j+dy[l]]==v[i+dx[c]][j+dy[c]]&&v[i][j]<mm&&v[i][j]>0&&v[i+dx[l]][j+dy[l]]>0) {mm=v[i][j];
                                                                 x=i;
                                                                 y=j;
}
g<<mm<<" "<<x<<" "<<y;

}