四十五分悬关求助
查看原帖
四十五分悬关求助
1144252
nanfeng2233楼主2024/1/11 19:47
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5;
char position[11][11];
int Ax,Ay,Bx,By;//A是农夫 B是奶牛们; 
int mAx,mAy,mBx,mBy;
int flagA=1,flagB=1;
int ans=0;
void Amove()
{
	if(flagA==1)
	{
		mAx=Ax-1;
		mAy=Ay;
	}
	if(flagA==2)
	{
		mAx=Ax;
		mAy=Ay+1;
	}
	if(flagA==3)
	{
		mAx=Ax+1;
		mAy=Ay;
	}
	if(flagA==4)
	{
		mAx=Ax;
		mAy=Ay-1;
	}
	if(mAx>=1&&mAy>=1&&mAy<=10&&mAx<=10&&position[mAx][mAy]=='.')
	{
		Ax=mAx;
		Ay=mAy;
	}
	else
	{
		flagA++;
		if(flagA>4)
		{
			flagA=1;
		}
	}
}
	
void Bmove()
{

	if(flagB==1)
	{
		mBx=Bx-1;
		mBy=By;
	}
	if(flagB==2)
	{
		mBx=Bx;
		mBy=By+1;
	}
	if(flagB==3)
	{
		mBx=Bx+1;
		mBy=By;
	}
	if(flagB==4)
	{
		mBx=Bx;
		mBy=By-1;
	}
	if(mBx>=1&&mBy>=1&&mBy<=10&&mBx<=10&&position[mBx][mBy]=='.')
	{
		Bx=mBx;
		By=mBy;
	}
	else
	{
		flagB++;
		if(flagB>4)
		{
			flagB=1;
		}
	}
}

int main()
{
	for(int i=1;i<=10;i++)
	{
		for(int j=1;j<=10;j++)
		{
			cin>>position[i][j];
			if(position[i][j]=='F')
			{
				Ax=i;
				Ay=j;
				position[i][j]=='.';
			}
			if(position[i][j]=='C')
			{
				Bx=i;
				By=j;
				position[i][j]=='.';
			}
		}	
	}
	while(1)
	{
		Amove();
		Bmove();
		ans++;
		if(ans>100000)
		{
			cout<<"0"<<"\n";
			return 0;
		}
		if(Ax==Bx&&Ay==By)
		{
			cout<<ans<<"\n";
			return 0;
		}
	}
	return 0;
}

麻烦大佬看看!!!悬关!!四十五分

2024/1/11 19:47
加载中...