33pts求助
查看原帖
33pts求助
1097314
封禁用户楼主2024/6/6 20:54

不知道为什么一直没有输出……

#include<bits/stdc++.h>
using namespace std;
int cowx,cowy,cowdir,johnx,johny,johndir,ans;
/*
dir:
0:North
1:East
2:South
3:West
*/
char a[12][12];
int main(){
	memset(a,'*',sizeof(a));
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			cin>>a[i][j];
			if(a[i][j]=='C') cowx=i,cowy=j;
			if(a[i][j]=='F') johnx=i,johny=j;
		}
	}
	while(cowx!=johnx||cowy!=johny){
		if(!cowdir){
			if(a[cowx-1][cowy]=='*') cowdir=1;
			else cowx--;
		}
		if(cowdir==1){
			if(a[cowx][cowy+1]=='*') cowdir=2;
			else cowy++;
		}
		if(cowdir==2){
			if(a[cowx+1][cowy]=='*') cowdir=3;
			else cowx++;
		}
		if(cowdir==3){
			if(a[cowx][cowy-1]=='*') cowdir=0;
			else cowy--;
		}
		if(!johndir){
			if(a[johnx-1][johny]=='*') johndir=1;
			else johnx--;
		}
		if(johndir==1){
			if(a[johnx][johny+1]=='*') johndir=2;
			else johny++;
		}
		if(johndir==2){
			if(a[johnx+1][johny]=='*') johndir=3;
			else johnx++;
		}
		if(johndir==3){
			if(a[johnx][johny-1]=='*') johndir=0;
			else johny--;
		}
		ans++;
		if(ans>10000){
			cout<<0;
			return 0;
		}
	}
	cout<<ans;
}
2024/6/6 20:54
加载中...