Cod sursa(job #145775)

Utilizator pegumihai pegulescu pegu Data 29 februarie 2008 14:38:25
Problema Rj Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 kb
#include<fstream.h>
ifstream f("rj.in");
ofstream g("rj.out");
const dimmax=10000,nmax=102;
typedef struct{int c,l;}element;
int a[nmax][nmax],b[nmax][nmax],n,m,min;
int col[9]={0,0,1,0,-1,-1,1,-1,1};
int lin[9]={0,1,0,-1,0,-1,1,1,-1};
element rom,jul,q;




void citire(){
int i,j,k;
char c[100];
f>>n>>m;
f.get();
for(i=1;i<=n;i++)
{    f.getline(c,100);     
     for(j=1;j<=m;j++)
       {
	if(c[j-1]==' '){a[i][j]=-1;b[i][j]=-1;}
	else
	  if(c[j-1]=='X'){a[i][j]=-2;b[i][j]=-1;}
          else
	     if(c[j-1]=='R'){rom.c=j; rom.l=i;a[i][j]=1;b[i][j]=1;}
         	else
		  if(c[j-1]=='J'){jul.l=i; jul.c=j;a[i][j]=1;b[i][j]=1;}
           
        }
}

}


void bordare(){                                  
int i,j;
for(i=0;i<=n;i++)
{a[i][m+1]=-2;b[i][m+1]=-2;
a[i][0]=-2; b[i][0]=-2;
}	 
 for(i=0;i<=m;i++)
 {a[0][i]=-2; b[0][i]=-2;
 a[n+1][i]=-2;b[n+1][i]=-2;
 }}

int lee(element p,){
int csf1=0,cinc1=0,i,j,k;
element x1,y1;
element c1[nmax];
c1[csf1]=p;

while(csf1>=cinc1)
{   x1=c1[cinc1++];
    
    for(k=1;k<9;k++)
    {   y1.c=x1.c+col[k];
	y1.l=x1.l+lin[k];
		if(a[y1.l][y1.c]==-1){c1[csf1++]=y1; a[y1.l][y1.c]=a[x1.l][x1.c]+1; }

     }


}


return 0;}

 int main(){int i,j;
 citire();
 bordare();
 lee();
cout<<min<<" "<<q.l<<" "<<q.c;
cout<<"\n";
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
cout<<a[i][j]<<" ";
cout<<"\n";  }

 return 0;}