你的数组开太小了,而且还会TLE。
by what_can_I_do @ 2022-08-17 14:12:46
敢问大佬,开多大合适
by CharlieLee @ 2022-08-17 14:16:22
@[CharlieLee](/user/745235) 豪爽亿点,开10都行反正爆不了
by gongziwen @ 2022-08-17 14:20:37
还有 drew. 后面有个点
by xiaoqian02 @ 2022-08-17 14:30:57
a 数组初值是有 1 的,建议全部改成 10。
另外 b 和 c 要加个 1 吧
by xiaoqian02 @ 2022-08-17 14:33:58
对了 b 和 c 是 t/3,t%3,不是 n
by xiaoqian02 @ 2022-08-17 14:34:50
@[CharlieLee](/user/745235) 其实数组 4 够了
by xiaoqian02 @ 2022-08-17 14:37:33
WA掉了
```
#include<bits/stdc++.h>
using namespace std;
int a[10][10]={{0,0,0,0},
{0,1,2,3},{0,4,5,6},{0,7,8,9}};
int main(){
long long n;
cin>>n;
bool flag=false;
int cnt=0;
while(n>0){
cnt++;
int t=n%10;
int b=t/3;
int c=t%3;
if(cnt%2==1) a[b][c]=1;
else a[b][c]=0;
n/=10;
}
if(a[1][1]==a[1][2]&&a[1][2]==a[1][3]){
flag=true;
if(a[1][1]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(a[2][1]==a[2][2]&&a[2][2]==a[2][3]){
flag=true;
if(a[2][1]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(a[3][1]==a[3][2]&&a[3][2]==a[3][3]){
flag=true;
if(a[3][1]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(a[1][1]==a[2][1]&&a[2][1]==a[3][1]){
flag=true;
if(a[1][1]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(a[1][2]==a[2][2]&&a[2][2]==a[3][2]){
flag=true;
if(a[1][2]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(a[1][3]==a[2][3]&&a[2][3]==a[3][3]){
flag=true;
if(a[1][3]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(a[1][1]==a[2][2]&&a[2][2]==a[3][3]){
flag=true;
if(a[1][1]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(a[3][1]==a[2][2]&&a[2][2]==a[1][3]){
flag=true;
if(a[1][1]==1) cout<<"xiaoa wins.";
else cout<<"uim wins.";
}
if(flag==false) cout<<"drew.";
return 0;
}
```
by CharlieLee @ 2022-08-17 17:50:00
@[CharlieLee](/user/745235)
### 换行特殊值要特判一下!
##### AC代码
```cpp
#include<bits/stdc++.h>
using namespace std;
char tmp[3][3];
int main(){
string st;
cin>>st;
for (int i=0;i<st.size();i++){
int T=st[i]-'0';
if (T%3==0)//换行特殊值特判
tmp[T/3-1][2]=((i+1)%2!=0)?'a':'u';
else tmp[T/3][T%3-1]=((i+1)%2!=0)?'a':'u';//(0,0) - (2,2)
/* for (int i=0;i<=2;i++){
for (int j=0;j<=2;j++)
cout<<tmp[i][j]<<" ";
cout<<endl;
}
cout<<endl;
*/
}
/*
X ? ?
? X ?
? ? X
*/
if (tmp[0][0]==tmp[1][1]&&tmp[1][1]==tmp[2][2]){
if (tmp[0][0]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
/*
? ? X
? X ?
X ? ?
*/
if (tmp[0][2]==tmp[1][1]&&tmp[1][1]==tmp[2][0]){
if (tmp[0][2]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
/*
X X X
? ? ?
? ? ?
*/
if (tmp[0][0]==tmp[0][1]&&tmp[0][1]==tmp[0][2]){
if (tmp[0][0]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
/*
? ? ?
X X X
? ? ?
*/
if (tmp[1][0]==tmp[1][1]&&tmp[1][1]==tmp[1][2]){
if (tmp[1][0]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
/*
? ? ?
? ? ?
X X X
*/
if (tmp[2][0]==tmp[2][1]&&tmp[2][1]==tmp[2][2]){
if (tmp[2][0]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
/*
X ? ?
X ? ?
X ? ?
*/
if (tmp[0][0]==tmp[1][0]&&tmp[1][0]==tmp[2][0]){
if (tmp[0][0]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
/*
? X ?
? X ?
? X ?
*/
if (tmp[0][1]==tmp[1][1]&&tmp[1][1]==tmp[2][1]){
if (tmp[0][1]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
/*
? ? X
? ? X
? ? X
*/
if (tmp[0][2]==tmp[1][2]&&tmp[1][2]==tmp[2][2]){
if (tmp[0][2]=='a')
cout<<"xiaoa wins.";
else cout<<"uim wins.";
return 0;
}
cout<<"drew.";
return 0;
}
```
by dream_time @ 2022-10-22 20:46:05