下载的第一个数据输出正确,WA 0分
查看原帖
下载的第一个数据输出正确,WA 0分
676419
Marsj楼主2024/7/26 13:39
#include<bits/stdc++.h>
#define int long long
using namespace std;
int r,c,n,d,nowline;
char mp[33000][33];
void Move(int n){
	int x=n;
	nowline=1;
	mp[nowline][x]='O';
	while(mp[nowline+1][x]!='O'&&mp[nowline+1][x]!='X'&&nowline+1<=r){
		mp[nowline][x]='.';
		nowline++;
		mp[nowline][x]='O';
	}
	if(mp[nowline+1][x]=='X')mp[nowline][x]='O';
	for(int i=1;i<=2;i++){
		if(mp[nowline+1][x]=='O'&&nowline+1<=r){
			if(mp[nowline][x-1]=='.'&&mp[nowline+1][x-1]=='.'&&x-1>=1){
				mp[nowline][x]='.';
				nowline++;
				x--;
				mp[nowline][x]='O';
				while(mp[nowline+1][x]!='O'&&mp[nowline+1][x]!='X'&&nowline+1<=r){
					mp[nowline][x]='.';
					nowline++;
					mp[nowline][x]='O';
				}
			}
			else if(mp[nowline][x+1]=='.'&&mp[nowline+1][x+1]=='.'&&x+1<=c){
				mp[nowline][x]='.';
				nowline++;
				x++;
				mp[nowline][x]='O';
				while(mp[nowline+1][x]!='O'&&mp[nowline+1][x]!='X'&&nowline+1<=r){
					mp[nowline][x]='.';
					nowline++;
					mp[nowline][x]='O';
				}
			}
		}
	}
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(nullptr);
	cout.tie(nullptr);
	scanf("%d%d",&r,&c);
	for(int i=1;i<=r;i++){
		char S[33000];
		cin >> S+1;
		for(int j=1;j<=c;j++)mp[i][j]=S[j];
	}
	scanf("%d",&n);
	for(int k=1;k<=n;k++){
		scanf("%d",&d);
		Move(d);
	}
	for(int i=1;i<=r-1;i++){
		for(int j=1;j<=c;j++){
			cout << mp[i][j];
		}
		cout << endl;
	}
	for(int j=1;j<=c;j++){
		cout << mp[r][j];
	}
	return 0;
}

2024/7/26 13:39
加载中...