求助,真不能理解哪里错了,求大佬帮帮忙
查看原帖
求助,真不能理解哪里错了,求大佬帮帮忙
393699
HXR123楼主2023/7/7 11:06

感觉过程没有问题,可答案就是不对

#include<bits/stdc++.h>
using namespace std;
string a[1111];
bool t1[100][100],t2[100][100];
int xf,yf,xc,yc;
int main()
{
	for(int i=1;i<=10;i++)
	{
		for(int j=1;j<=10;j++)
		cin>>a[i][j];
	}
	for(int i=0;i<=11;i++)
	{
		a[0][i]='*';
		a[11][i]='*';
		a[i][0]='*';
		a[i][11]='*';
	}
	for(int i=1;i<=10;i++)
	{
		for(int j=1;j<=10;j++)
		{
			if(a[i][j]=='C')xc=i,yc=j;
			if(a[i][j]=='F')xf=i,yf=j;
		}
	}
	int ans=0,f1=1,f2=1;
	while(ans<=1000000)
	{
		if(xc==xf&&yc==yf){cout<<ans;return 0;}
		ans++;
		if(f1==1){if(a[xc-1][yc]!='*'){xc--;}else f1++;}
		if(f1==2){if(a[xc][yc+1]!='*'){yc++;}else f1++;}
		if(f1==3){if(a[xc+1][yc]!='*'){xc++;}else f1++;}
		if(f1==4){if(a[xc][yc-1]!='*'){yc--;}else {f1=1;if(f1==1){if(a[xc-1][yc]!='*'){xc--;}else f1++;}if(f1==2){if(a[xc][yc+1]!='*'){yc++;}else f1++;}if(f1==3){if(a[xc+1][yc]!='*'){xc++;}else f1++;}}}
		
		
		if(f2==1){if(a[xf-1][yf]!='*'){xf--;}else f2++;}
		if(f2==2){if(a[xf][yf+1]!='*'){yf++;}else f2++;}
		if(f2==3){if(a[xf+1][yf]!='*'){xf++;}else f2++;}
		if(f2==4){if(a[xf][yf-1]!='*'){yf--;}else {f2=1;if(f2==1){if(a[xf-1][yf]!='*'){xf--;}else f2++;}if(f2==2){if(a[xf][yf+1]!='*'){yf++;}else f2++;}if(f2==3){if(a[xf+1][yf]!='*'){xf++;}else f2++;}}}
		cout<<xc<<" "<<yc<<"   "<<xf<<" "<<yf<<"   "<<ans<<endl;
	}
	cout<<"0";
	return 0;
}
2023/7/7 11:06
加载中...