3C - Tic-tac-toe - CodeForces Solution


brute force games implementation *1800

Please click on ads to support us..

Python Code:


def solution(lines):
    xc, oc, dc = 0, 0, 0
    for i in range(3):
        for j in range(3):
            if lines[i][j] == "X":
                xc += 1
            if lines[i][j] == "0":
                oc += 1
            if lines[i][j] == ".":
                dc += 1

    if xc != oc and xc != oc + 1:
        return "illegal"
    
    ch = set()
    for i in range(3):
        if lines[0][i] == lines[1][i] == lines[2][i]:
            ch.add(lines[0][i])
    
    for i in range(3):
        if lines[i][0] == lines[i][1] == lines[i][2]:
            ch.add(lines[i][0])
    
    if lines[0][0] == lines[1][1] == lines[2][2]:
        ch.add(lines[1][1])
    
    if lines[0][2] == lines[1][1] == lines[2][0]:
        ch.add(lines[1][1])
    
    if 'X' in ch and '0' in ch:
        return "illegal"
    
    if 'X' in ch and xc == oc + 1:
        return "the first player won"
    
    if 'X' in ch:
        return "illegal"
    
    if '0' in ch and oc == xc:
        return "the second player won"
    
    if '0' in ch and oc < xc:
        return "illegal"
    
    if dc == 0:
        return "draw"

    if xc == oc:
        return "first"
    
    if xc == oc + 1:
        return "second"


lines = [input(), input(), input()]
print(solution(lines))


Comments

Submit
0 Comments
More Questions

80A - Panoramix's Prediction
1354B - Ternary String
122B - Lucky Substring
266B - Queue at the School
1490A - Dense Array
1650B - DIV + MOD
1549B - Gregor and the Pawn Game
553A - Kyoya and Colored Balls
1364A - XXXXX
1499B - Binary Removals
1569C - Jury Meeting
108A - Palindromic Times
46A - Ball Game
114A - Cifera
776A - A Serial Killer
25B - Phone numbers
1633C - Kill the Monster
1611A - Make Even
1030B - Vasya and Cornfield
1631A - Min Max Swap
1296B - Food Buying
133A - HQ9+
1650D - Twist the Permutation
1209A - Paint the Numbers
1234A - Equalize Prices Again
1613A - Long Comparison
1624B - Make AP
660B - Seating On Bus
405A - Gravity Flip
499B - Lecture