##求助大佬
查看原帖
##求助大佬
485451
qgmzzn楼主2022/3/8 21:43
//不知道为什么总超时QAQ
#include<bits/stdc++.h>
using namespace std;
char a[12][12];
int  f[3],c[3];
bool ju(int x1,int x2,int y1,int y2) {
	if(x1==x2) {
		if(y1==y2)return true;
		else return false;
	} else return false;
}
void walk(int x1,int x2,int y1,int y2,int d1,int d2) {
	if(d1==0){
		if(a[x1-1][y1]=='*')d1=1;
		else x1--;	
	}
	if(d1==1){
		if(a[x1][y1+1]=='*')d1=2;
		else y1++;	
	}
	if(d1==2){
		if(a[x1+1][y1]=='*')d1=3;
		else x1++;	
	}
	if(d1==3){
		if(a[x1][y1-1]=='*')d1=0;
		else y1--;	
	}
	if(d2==0){
		if(a[x2-1][y2]=='*')d2=1;
		else x2--;	
	}
	if(d2==1){
		if(a[x2][y2+1]=='*')d2=2;
		else y2++;	
	}
	if(d2==2){
		if(a[x2+1][y2]=='*')d2=3;
		else x2++;	
	}
	if(d2==3){
		if(a[x2][y2-1]=='*')d2=0;
		else y2--;	
	}
}
int main() {
	for (int i=0; i<=11; i++)a[i][0]='*',a[i][11]='*';
	for (int i=1; i<=11; i++)a[0][i]='*',a[11][i]='*';
	for(int i=1; i<=10; i++) {
		for(int j=1; j<=10; j++) {
			cin>>a[i][j];
			if(a[i][j]=='F') {
				f[0]=i;
				f[1]=j;
			}
			if(a[i][j]=='C') {
				c[0]=i;
				c[1]=j;
			}
		}
	}		
	int t=0;
	f[2]=0;c[2]=0;
	while(!ju(f[0],c[0],f[1],c[1])) {
			walk(f[0],c[0],f[1],c[1],f[2],c[2]);
			t++;
	}
	cout<<t;
}
2022/3/8 21:43
加载中...