P1518 字符串处理求助 输出0 帮帮妹妹吧
  • 板块题目总版
  • 楼主zhimeng_LQ
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/9/29 17:37
  • 上次更新2023/11/5 12:26:06
查看原帖
P1518 字符串处理求助 输出0 帮帮妹妹吧
321605
zhimeng_LQ楼主2020/9/29 17:37
#include <bits/stdc++.h>
using namespace std;
char m[12][12];
int F[3],C[3]; //存 人和牛的位置 

void init(){
	for(int i=0;i<=11;i++)m[i][0]='*',m[i][11]='*'; //左右 
	for(int i=0;i<=11;i++)m[0][i]='*',m[11][i]='*'; //上下 
	for(int i=1;i<=10;i++)
		for(int j=1;j<=10;j++){
			cin>>m[i][j];
			if(m[i][j]=='F')F[1]=i,F[2]=j,m[i][j]='.';
			if(m[i][j]=='C')C[1]=i,C[2]=j,m[i][j]='.';
		}
}
int main()
{
	int step=0;
	init();
	F[0]=1,C[0]=1; //1-4 上右下左 
	while(F[1]==C[1]  &&  F[2]==C[2]){
		switch(F[0]){
			case 1:
				if( m[F[1]-1][F[2]] == '.' )
					F[1]=F[1]-1;
				else 
					F[0]++;
				if(F[0]==5)F[0]=1;
				break;
			case 2:
				if( m[F[1]][F[2]+1] == '.' )
					F[2]=F[2]+1;
				else 
					F[0]++;
				if(F[0]==5)F[0]=1;
				break;
			case 3:
				if( m[F[1]+1][F[2]] == '.' )
					F[1]=F[1]+1;
				else 
					F[0]++;
				if(F[0]==5)F[0]=1;
				break;
			case 4:
				if( m[F[1]][F[2]-1] == '.' )
					F[2]=F[2]-1;
				else 
					F[0]++;
				if(F[0]==5)F[0]=1;
				break;
		}
		switch(C[0]){
			case 1:
				if( m[C[1]-1][C[2]] == '.' )
					C[1]=C[1]-1;
				else 
					C[0]++;
				if(C[0]==5)C[0]=1;
				break;
			case 2:
				if( m[C[1]][C[2]+1] == '.' )
					C[2]=C[2]+1;
				else 
					C[0]++;
				if(C[0]==5)C[0]=1;
				break;
			case 3:
				if( m[C[1]+1][C[2]] == '.' )
					C[1]=C[1]+1;
				else 
					C[0]++;
				if(C[0]==5)C[0]=1;
				break;
			case 4:
				if( m[C[1]][C[2]-1] == '.' )
					C[2]=C[2]-1;
				else 
					C[0]++;
				if(C[0]==5)C[0]=1;
				break;
		}
		step++;
	} 
	cout<<step<<endl;
	return 0;
}
2020/9/29 17:37
加载中...