为什么过不了,求大佬帮我看看,就是有几个点一直过不了
查看原帖
为什么过不了,求大佬帮我看看,就是有几个点一直过不了
1520657
June_w楼主2024/12/4 11:14
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;


int b[1010][6];

int main()
{
	char a[1010][10];
	int n, m;
	ll sum = 0;
	cin >> n >> m;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < 6; j++)
		{
			cin >> a[i][j];
			if (a[i][j] == 'X')
				sum++;
		}
	if ((sum + m) % 2 != 0||(sum+m)>(6*n))
		cout << "Impossible" << endl;

	else
	{
		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < 6; j++)
			{
				if (a[i][j] == 'X')
					if (a[i][5 - j] == 'X')
					{
						b[i][5 - j] = 1;
						b[i][j] = 1;
						continue;
					}
					else
					{
						a[i][5 - j] = 'X';
						b[i][5 - j] = 1;
						b[i][j] = 1;
						m--;

					}
			}
		}

		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < 3; j++)
			{
				if (b[i][j]==1)
					continue;
				if (m > 0)
				{
					a[i][j] = 'X';
					a[i][5 - j] = 'X';
					m -= 2;
				}
			}
			if (m == 0)
				break;
		}


		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < 6; j++)
				cout << a[i][j];
			cout << endl;
		}
	}
	return 0;
}
2024/12/4 11:14
加载中...