CF3C Tic-tac-toe,第120个点WA。
#include<bits/stdc++.h>
using namespace std;
int i,j,X,O;
char s[4][4];
bool flag1,flag2;
int main(){
scanf("%s%s%s",s[1]+1,s[2]+1,s[3]+1);
for(i=1;i<=3;i++)
for (j=1;j<=3;j++)
O+=(s[i][j]=='0'?1:0),X+=(s[i][j]=='X'?1:0);
if (s[1][1]==s[1][2]&&s[1][2]==s[1][3]&&s[1][1]!='.'){
if (s[1][1]=='X') flag1=1;
else flag2=1;
}
if (s[2][1]==s[2][2]&&s[2][2]==s[2][3]&&s[2][1]!='.'){
if (s[2][1]=='X') flag1=1;
else flag2=1;
}
if (s[3][1]==s[3][2]&&s[3][2]==s[3][3]&&s[3][1]!='.'){
if (s[3][1]=='X') flag1=1;
else flag2=1;
}
if (s[1][1]==s[2][1]&&s[2][1]==s[3][1]&&s[1][1]!='.'){
if (s[1][1]=='X') flag1=1;
else flag2=1;
}
if (s[1][2]==s[2][2]&&s[2][2]==s[3][2]&&s[1][2]!='.'){
if (s[1][2]=='X') flag1=1;
else flag2=1;
}
if (s[1][3]==s[2][3]&&s[2][3]==s[3][3]&&s[1][3]!='.'){
if (s[1][3]=='X') flag1=1;
else flag2=1;
}
if (s[1][1]==s[2][2]&&s[2][2]==s[3][3]&&s[1][1]!='.'){
if (s[1][1]=='X') flag1=1;
else flag2=1;
}
if (s[3][1]==s[2][2]&&s[2][2]==s[1][3]&&s[3][1]!='.'){
if (s[3][1]=='X') flag1=1;
else flag2=1;
}
if (flag1&&flag2||flag1&&(X==O)||flag2&&(X>O)||X<O||X-O>1) {printf("illegal\n");return 0;}
if (flag1) {printf("the first player won\n");return 0;}
if (flag2) {printf("the second player won\n");return 0;}
if (X==O) {printf("first\n");return 0;}
if (X>O) {printf("second\n");return 0;}
if (!flag1&&!flag2&&X+O==9) {printf("draw\n");return 0;}
return 0;
}