求助
查看原帖
求助
948733
ywrow楼主2025/1/18 15:40

f=FJ
c=Cow
n=新一轮
d=方向

#include<bits/stdc++.h>
using namespace std;
const int n=10;
char a[11][11];
int fd=0,cd=0,k=0;
int dx[5]={-1,0,1,0};
int dy[5]={0,1,0,-1};
int fx,fy,cx,cy;
int main(){
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			if(a[i][j]=='F'){
				fx=i;
				fy=j;
			}
			if(a[i][j]=='C'){
				cx=i;
				cy=j;
			}
		}
	}
	while(k<=1000000){
		k++;
		if(fx==cx&&fy==cy){
			cout<<k-1;
			exit(0);
		}
		int nfx=fx+dx[fd];
		int nfy=fy+dy[fd];
		int fw=a[nfx][nfy];
		if(fw!='*'&&nfx>=1&&nfx<=n&&nfy>=1&&nfy<=n){
			fx=nfx;
			fy=nfy;
		}
		else{
			fd=(fd+1)%4;
		}
		int ncx=cx+dx[cd];
		int ncy=cy+dy[cd];
		int cw=a[nfx][nfy];
		if(cw!='*'&&ncx>=1&&ncx<=n&&ncy>=1&&ncy<=n){
			cx=ncx;
			cy=ncy;
		}
		else{
			cd=(cd+1)%4;
		}
	}
	cout<<0;
	
}

2025/1/18 15:40
加载中...