70 ,玄,佬,调,谢!
查看原帖
70 ,玄,佬,调,谢!
1113551
wzy20110830楼主2024/10/23 14:37

有点长,请耐心看完

#include <cstdio>
#include <vector>
using namespace std;
char a[4][3];
bool buc[26];
int sz, ans1, ans2;
vector<char> con;
bool IndWin(char n);
bool ParWin(char p, char q);
int main() {
	scanf("%s%s%s", a[0], a[1], a[2]);
	for (int i = 0; i < 3; ++i)
		for (int j = 0; j < 3; ++j)
			buc[a[i][j] - 'A'] = true;
	for (int i = 0; i < 26; ++i)
		if (buc[i])
			con.push_back(i + 'A');
	sz = con.size();
	for (int i = 0; i < sz; ++i)
		if (IndWin(con[i]))	++ans1;
	for (int i = 0; i < sz - 1; ++i)
		for (int j = i + 1; j < sz; ++j)
			if (ParWin(con[i], con[j]))	++ans2;
	printf("%d\n%d", ans1, ans2);
	return 0;
}
bool IndWin(char n) {
	return (a[0][0] == n && a[1][1] == n && a[2][2] == n) || (a[0][2] == n && a[1][1] == n && a[2][0] == n) || (a[0][0] == n && a[1][0] == n && a[2][0] == n) || (a[0][1] == n && a[1][1] == n && a[2][1] == n) || (a[0][2] == n && a[1][2] == n && a[2][2] == n) || (a[0][0] == n && a[0][1] == n && a[0][2] == n) || (a[1][0] == n && a[1][1] == n && a[1][2] == n) || (a[2][0] == n && a[2][1] == n && a[2][2] == n);
}
bool ParWin(char p, char q) {
	return ((a[0][0] == p || a[0][0] == q) && (a[1][1] == p || a[1][1] == q) && (a[2][2] == p || a[2][2] == q)) || ((a[0][2] == p || a[0][2] == q) && (a[1][1] == p || a[1][1] == q) && (a[2][0] == p || a[2][0] == q)) || ((a[0][0] == p || a[0][0] == q) && (a[1][0] == p || a[1][0] == q) && (a[2][0] == p || a[2][0] == q)) || ((a[0][1] == p || a[0][1] == q) && (a[1][1] == p || a[1][1] == q) && (a[2][1] == p || a[2][1] == q)) || ((a[0][2] == p || a[0][2] == q) && (a[1][2] == p || a[1][2] == q) && (a[2][2] == p || a[2][2] == q)) || ((a[0][0] == p || a[0][0] == q) && (a[0][1] == p || a[0][1] == q) && (a[0][2] == p || a[0][2] == q)) || ((a[1][0] == p || a[1][0] == q) && (a[1][1] == p || a[1][1] == q) && (a[1][2] == p || a[1][2] == q)) || ((a[2][0] == p || a[2][0] == q) && (a[2][1] == p || a[2][1] == q) && (a[2][2] == p || a[2][2] == q));
}

评测记录在此

2024/10/23 14:37
加载中...