P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
查看原帖
P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
940580
Zzrcqv楼主2023/3/16 14:59
#include<stdio.h>
#include<string.h>
typedef struct Node
{
	int x;
	int y;
	int direction;  //0 north 1 east 2 west 3south
}cow,farmer;
int main()
{
   struct Node cow,farmer;
   char c;
   int i,j,map[15][15]={0},time=0;
   for(i=1;i<=10;i++)
   {
   	 for(j=1;j<=10;j++)
   	 {
   	 	 scanf("%c",&c);
   	 	 if(c=='*') continue;
   	 	 map[i][j]=1;
   	 	 if(c=='C'){
   	 	 cow.x=i;
		 cow.y=j;
		 cow.direction=0;	
		 }
		 if(c=='F'){
		 farmer.x=i;
		 farmer.y=j;
		 farmer.direction=0;
		 }
	 }
	 getchar();
   } 
   while(cow.x!=farmer.x||cow.y!=farmer.y)
   {
   	  if(cow.direction==0)
   	  {
   	  	 if(map[cow.x-1][cow.y]==0)  cow.direction=1;
   	  	 else  cow.x-=1;
	  }
	  else if(cow.direction==1)
	  { 
	  	 if(map[cow.x][cow.y+1]==0) cow.direction=2;
	  	 else  cow.y+=1;
	  }
	  else if(cow.direction==2)
	  {
	  	 if(map[cow.x+1][cow.y]==0) cow.direction=3;
	  	 else  cow.x+=1;
	  }
	  else if(cow.direction==3)
	  {
	  	if(map[cow.x][cow.y-1]==0) cow.direction=0;
	  	else  cow.y-=1;
	  }
	  
	  if(farmer.direction==0)
	  {
	  	 if(map[farmer.x-1][farmer.y]==0) farmer.direction=1;
	  	 else  farmer.x-=1;
	  }
	  else if(farmer.direction==1)
	  {
	  	 if(map[farmer.x][farmer.y+1]==0) farmer.direction=2;
	  	 else  farmer.y+=1;
	  }
	  else if(farmer.direction==2)
	  {
	  	 if(map[farmer.x+1][farmer.y]==0)  farmer.direction=3;
	  	 else  farmer.x+=1;
	  }
	  else if(farmer.direction==3)
	  {
	  	 if(map[farmer.x][farmer.y-1]==0)  farmer.direction=0;
	  	 else  farmer.y-=1;
	  }
	  time++;
	  if(time>160000)
	  {
	  	time=0;
	  	break;
	  }
   }
   printf("%d",time);
} 
2023/3/16 14:59
加载中...