3WA 6TLE 大佬求助!
查看原帖
3WA 6TLE 大佬求助!
540363
AKPC楼主2022/8/2 09:40
#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long
int cx,cy,fx,fy,cf=0,ff=0,ans=0;bool b[10][10];char ch;
void move(){
	switch (cf){
		case 0:{
			if (b[cx+1][cy]==0) cf=1;
			else cx++;
			break;
		}
		case 1:{
			if (b[cx][cy+1]==0) cf=2;
			else cy++;
			break;
		}
		case 2:{
			if (b[cx-1][cy]==0) cf=3;
			else cx--;
			break;
		}
		case 3:{
			if (b[cx][cy-1]==0) cf=0;
			else cy--;
			break;
		}
	}
	switch (ff){
		case 0:{
			if (b[fx+1][fy]==0) ff=1;
			else fx++;
			break;
		}
		case 1:{
			if (b[fx][fy+1]==0) ff=2;
			else fy++;
			break;
		}
		case 2:{
			if (b[fx-1][fy]==0) ff=3;
			else fx--;
			break;
		}
		case 3:{
			if (b[fx][fy-1]==0) ff=0;
			else fy--;
			break;
		}
	}
}
signed main(){
	for (int i=0;i<10;i++)
		for (int j=0;j<10;j++){
			cin>>ch;
			ch=='*'?b[i][j]=0:b[i][j]=1;
			if (ch=='C') cx=i,cy=j;
			else if (ch=='F') fx=i,fy=j;
		}
	while (cx!=fx||cy!=fy||ans<160000){
		move();
		ans++;
	}
	if (ans>=160000) cout<<0;
	else cout<<ans;
	return 0;
}
2022/8/2 09:40
加载中...