22分求助
查看原帖
22分求助
638141
Literally楼主2023/9/2 23:45

评测

#include <iostream>
using namespace std;
char map[20][20];
int ci,cj,fi,fj,modec=1,modef=1,cnt=0;
int main(){
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			cin>>map[i][j];
			if(map[i][j]=='C'){
				ci=i;
				cj=j;
			}
			if(map[i][j]=='F'){
				fi=i;
				fj=j;
			}
		}
	}
	for(int i=0;i<=11;i++){
		map[i][0]='*';
		map[i][11]='*';
		map[0][i]='*';
		map[11][i]='*';
	}
	while(!(ci==fi && cj==fj)){
		if(modec==1){
			if(map[ci-1][cj]=='*') modec++;
			else ci--;
		}else if(modec==2){
			if(map[ci][cj+1]=='*') modec++;
			else cj++;
		}else if(modec==3){
			if(map[ci+1][cj]=='*') modec++;
			else ci++;
		}else{
			if(map[ci][cj-1]=='*') modec++;
			else ci--;
		}
		if(modef==1){
			if(map[fi-1][fj]=='*') modef++;
			else fi--;
		}else if(modef==2){
			if(map[fi][fj+1]=='*') modef++;
			else fj++;
		}else if(modef==3){
			if(map[fi+1][fj]=='*') modef++;
			else fi++;
		}else{
			if(map[fi][fj-1]=='*') modef++;
			else fi--;
		}
		if(modef>4) modef-=4;
		if(modec>4) modec-=4;
		cnt++;
		if(cnt>100000000){
			cout<<0;
			return 0;
		}
	}
	cout<<cnt;
	return 0;
} 
2023/9/2 23:45
加载中...