45分求救
查看原帖
45分求救
936407
Oldxu114514楼主2024/8/6 13:43
#include<bits/stdc++.h>
using namespace std;
char s[11][11];
int dx[5]={0,-1,0,1,0};
int dy[5]={0,0,1,0,-1};
int fpi,fpj,cpi,cpj,fpw,cpw;
int main(){
	for(int i=1;i<=10;i++)
	{
		for(int j=1;j<=10;j++)
		{
			cin>>s[i][j];
			if(s[i][j]=='F')
			{
				fpi=i;
				fpj=j;
				fpw=1;
			}
			else if(s[i][j]=='C')
			{
				cpi=i;
				cpj=j;
				cpw=1;
			}
		}
	}
	int cnt=0;
	int fx=fpi;
	int fy=fpj;
	int cx=cpi;
	int cy=cpj;
	while(fx!=cx || fy!=cy)
	{
		if(fx==cx && fy==cy)
		{
			break;
		}
		cnt++;
		if(cnt>200000)
		{
			cout<<0<<endl;
			return 0;
		}
		int fnx=fx+dx[fpw];
		int fny=fy+dy[fpw];
		if(fnx>=1 && fnx<=10 && fny>=1 && fny<=10 && s[fnx][fny]=='.')
		{
			fx=fnx;
			fy=fny;
		} 
		else
		{
			if(fpw<4)
			{
				fpw++;
			}
			else
			{
				fpw=1;
			}
		}
		int cnx=cx+dx[cpw];
		int cny=cy+dy[cpw];
		if(cnx>=1 && cnx<=10 && cny>=1 && cny<=10 && s[cnx][cny]=='.')
		{
			cx=cnx;
			cy=cny;
		} 
		else
		{
			if(cpw<4)
			{
				cpw++;
			}
			else
			{
				cpw=1;
			}
		}
	}
	cout<<cnt<<endl;
	return 0;
}

2024/8/6 13:43
加载中...