死活A不了,48pts求调玄关
查看原帖
死活A不了,48pts求调玄关
1036897
AnOIer楼主2024/10/20 20:26
#include<bits/stdc++.h>
using namespace std;
char a[1010][10];
int main() {
	int n,m,s=0;
	cin>>n>>m;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=6; j++) {
			cin>>a[i][j];
			if(a[i][j]=='.') s++;
		}
	}
	if(s<m) {
		cout<<"Impossible";
		exit(0);
	}
	int cnt=0;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=6; j++) {
			if(a[i][j]=='X') {
				if(a[i][7-j]!='X')
					a[i][7-j]='Y',cnt++;
			}
		}
	}
	int p=m-cnt;
	if((p<0)||(p&1)) {
		cout<<"Impossible";
		exit(0);
	}
	int cnt2=p;
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=6; j++) {
			if(a[i][j]=='X') continue;
			if(cnt2>0) {
				a[i][j]='X';
				a[i][7-j]='X';
				cnt2-=2;
			} else break;
		}
	}
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=6; j++) {
			if(a[i][j]!='.') cout<<"X";
			else cout<<'.';
		}
		cout<<"\n";
	}
	return 0;
}

2024/10/20 20:26
加载中...