社区讨论
40 分求调
P1838三子棋I参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhjrzgkj
- 此快照首次捕获于
- 2025/11/04 07:32 4 个月前
- 此快照最后确认于
- 2025/11/04 07:32 4 个月前
代码如下:
CPP#include<bits/stdc++.h>
using namespace std;
string s;
long long a[5][5];
long long ans;
bool Check(int x){
for(int i = 0; i < 3; i++){
if(a[i][0] == a[i][1]&&a[i][1] == a[i][2]&&a[i][1] == x) return 1;
}
for(int i = 0; i < 3; i++){
if(a[0][i] == a[i][0]&&a[1][i] == a[1][i]&&a[1][i] == x) return 1;
}
if(a[0][0] == a[1][1]&&a[1][1] == a[2][2]&&a[1][1] == x) return 1;
if(a[0][2] == a[1][1]&&a[1][1] == a[2][0]&&a[2][0] == x) return 1;
return 0;
}
int main(){
cin >>s;
for(int i = 0; i <s.size(); i++){
long long x = s[i] - '1';
a[x / 3][x % 3] = i % 2 + 1;
if(Check(i % 2 + 1)) {
ans = i % 2 + 1;
break;
}
}
if(!ans) cout << "drew.";
else cout <<(ans == 1 ? "xiaoa wins." : "uim wins.");
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...