//poj 3075
//sep9
#include <iostream>
#include <algorithm>
using namespace std;
int way[8][3]={
{0,1,2},
{3,4,5},
{6,7,8},
{0,3,6},
{1,4,7},
{2,5,8},
{0,4,8},
{2,4,6}
};
char s[16];
bool check(char c)
{
for(int i=0;i<8;++i){
int j;
for(j=0;j<3;++j)
if(s[way[i][j]]!=c)
break;
if(j==3)
return true;
}
return false;
}
int main()
{
int x,o;
while(scanf("%s",s)==1&&strcmp(s,"end")){
x=count(s,s+9,'X');
o=count(s,s+9,'O');
if(x<o||o+1<x||x<3) puts("invalid");
else if(x>o&&check('X')&&!check('O')) puts("valid");
else if(o==x&&!check('X')&&check('O')) puts("valid");
else if(x+o==9&&!check('X')&&!check('O')) puts("valid");
else puts("invalid");
}
return 0;
}
poj 3075 Tic-Tac-Toe 五子棋模拟
最新推荐文章于 2018-05-14 19:38:03 发布