#include<iostream>
#include<vector>
#include<cstdio>
using namespace std;
void calcWinner( int &a, int &b, int &c, int &xWins, int &oWins, int &pxWins, int &poWins)
{
int r = a*b*c;
if( r == 27 )
++xWins;
else if( r == 8 )
++oWins;
else if(r==4)
++poWins;
else if(r==9)
++pxWins;
}
int main ()
{
int T;
cin >> T;
for( int i=0; i<T; ++i )
{
string game="", line;
for( int j=0; j<3; ++j )
{
cin >> line;
game += line;
}
int numXs = 0, numOs = 0, numEs = 0;
vector<int> newBoard;
for( string::iterator it = game.begin(); it!=game.end(); ++it )
{
if( *it == 'x' )
{
newBoard.push_back( 3 );
++numXs;
}
else if ( *it == 'o' )
{
newBoard.push_back( 2 );
++numOs;
}
else
{
++numEs;
newBoard.push_back( 1 );
}
}
if( numXs == numOs || numXs == numOs+1 )
{
int xWins = 0, oWins = 0, pxWins=0, poWins=0;
calcWinner( newBoard[0], newBoard[1], newBoard[2], xWins, oWins , pxWins, poWins);
calcWinner( newBoard[3], newBoard[4], newBoard[5], xWins, oWins , pxWins, poWins);
calcWinner( newBoard[6], newBoard[7], newBoard[8], xWins, oWins , pxWins, poWins);
calcWinner( newBoard[0], newBoard[3], newBoard[6], xWins, oWins , pxWins, poWins);
calcWinner( newBoard[1], newBoard[4], newBoard[7], xWins, oWins , pxWins, poWins);
calcWinner( newBoard[2], newBoard[5], newBoard[8], xWins, oWins , pxWins, poWins);
calcWinner( newBoard[0], newBoard[4], newBoard[8], xWins, oWins , pxWins, poWins);
calcWinner( newBoard[2], newBoard[4], newBoard[6], xWins, oWins , pxWins, poWins);
if( xWins > 0 && oWins > 0 )
{
printf("invalid\n");
}
else if( xWins > 0 )
{
if( numXs > numOs )
printf("lose\n");
else
printf("invalid\n");
}
else if( oWins > 0 )
{
if( numXs == numOs )
printf("win\n");
else
printf("invalid\n");
}
else
{
if(numEs>5)
printf("tie\n");
else
{
if(numXs==numOs)
{
if(pxWins>0)
printf("lose\n");
else if(poWins>=2)
printf("win\n");
else
printf("tie\n");
}
else
{
if(poWins>0)
printf("win\n");
else if(pxWins>=2)
printf("lose\n");
else
printf("tie\n");
}
}
}
}
else
{
printf("invalid\n");
}
}
return 0;
}
Can anybody give me please more test case for checking my code