E题题解,我的题解最简单

#include<algorithm>
#include<vector>
#include<cstring>
#define ll long long
using namespace std;
int ans[5][5];
int re[10][5];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		memset(re, 0, sizeof(re));
		int xl = 0, zj = 0, shen = 0;
		for (int i = 1; i <= 3; i++)
		{
			for (int j = 1; j <= 3; j++)
			{
				char c;
				cin >> c;
				if (c == 'X')
				{
					ans[i][j] = 1;
					re[i][1]++, re[j + 3][1]++;
					xl++;
				}
				else if (c == 'O')
				{
					ans[i][j] = 2;
					re[i][2]++, re[j + 3][2]++;
					zj++;
				}
				else
				{
					ans[i][j] = 0; shen++;
					re[i][0]++, re[j + 3][0]++;
				}
			}
		}


		if (xl == 0 || xl == 1 || xl == 2)
		{
			cout << "Yes" << endl;
			continue;
		}
		for (int i = 1; i <= 3; i++)
		{
			re[7][ans[i][i]]++, re[8][ans[i][4 - i]]++;
		}
		bool f = false;
		for (int i = 1; i <= 8; i++)
		{
			if (re[i][0] <= 2 && re[i][1] >= 1 && re[i][2] == 0)
			{
				f = true;
				break;
			}
		}
		if (f)
		{
			cout << "Yes" << endl;
		}
		else cout << "No" << endl;

	}
}