求调玄关
查看原帖
求调玄关
1053122
shy_lihui楼主2024/9/4 15:34
#include <bits/stdc++.h>
using namespace std;
const int N=3e4;
int n,m,q;
char a[N+5][35];
void down(int x,int y)
{
	if(x==m || a[x+1][y]=='X')
	{
		a[x][y]='O';
		exit(0);
	}
	else if(a[x+1][y]=='.')
	{
		down(x+1,y);
	}
	else if(a[x+1][y]=='O')
	{
		if(y>1 && x<n && a[x][y-1]=='.' && a[x+1][y-1]=='.')
		{
			down(x,y-1);
		}
		else if(y<m && x<n && a[x][y+1]=='.' && a[x+1][y+1]=='.')
		{
			down(x,y+1);
		}
		else
		{
			a[x][y]='O';
			exit(0);
		}
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];
		}
	}
	cin>>q;
	while(q--)
	{
		int y;
		cin>>y;
		down(1,y);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cout<<a[i][j];
		}
		cout<<"\n";
	}
	return 0;
}
2024/9/4 15:34
加载中...