HackerEarth Tic-tac-toe problem solution YASH PAL, 31 July 2024 In this HackerEarth Tic-tac-toe problem solution, A game of tic-tac-toe is played on a 3 x 3 square grid. Each cell is either empty (denoted by ‘.’) or occupied by one of the two players (‘X’ and ‘O’). X goes first and then they take turns alternatively. If X is written three times in a straight line, then X wins and the game ends. The same goes for O. If there is no empty cell left, then the game ends as a draw. You are given the description of a game of tic-tac-toe. You have to determine the state of the game.The states of the game are as follows:If the game is invalid, that is, if there is no possibility of it happening, output “Wait, what?”.If X has won, then print “X won.” else if O has won print “O won.”.If it is a draw, then print “It is a draw.”.Otherwise, print whose turn it is, “X’s turn.” or “O’s turn.” accordingly.HackerEarth Tic-tac-toe problem solution.#include<bits/stdc++.h>using namespace std;string A[3];int Count(char ch){ int cnt = 0; for (int i = 0; i < 3; i ++) for (int j = 0; j < 3; j ++) cnt += A[i][j] == ch; return (cnt);}int Win(char ch){ int cnt = 0; for (int i = 0; i < 3; i ++) cnt += A[i][0] == ch && A[i][1] == ch && A[i][2] == ch, cnt += A[0][i] == ch && A[1][i] == ch && A[2][i] == ch; cnt += A[0][0] == ch && A[1][1] == ch && A[2][2] == ch; cnt += A[0][2] == ch && A[1][1] == ch && A[2][0] == ch; return (cnt > 0);}int main(){ cin >> A[0] >> A[1] >> A[2]; int Cx = Count('X'), Wx = Win('X'); int Co = Count('O'), Wo = Win('O'); if (Cx < Co) return !printf("Wait, what?"); if (Cx > Co + 1) return !printf("Wait, what?"); if (Wx + Wo > 1) return !printf("Wait, what?"); if (Wx && Cx != Co + 1) return !printf("Wait, what?"); if (Wx) return !printf("X won."); if (Wo && Cx != Co) return !printf("Wait, what?"); if (Wo) return !printf("O won."); if (Cx + Co == 9) return !printf("It's a draw."); if (Cx == Co) return !printf("X's turn."); return !printf("O's turn.");} coding problems solutions