Problem: Snuke, who loves animals, built a zoo.  There are N animals in this zoo. They are conveniently numbered 1 through N, and arranged in a circle. The animal numbered i (2≤i≤N-1) is adjacent to the animals numbered i-1 and i+1. Also, the animal numbered 1 is adjacent to the animals numbered 2 and N, and the animal numbered N is adjacent to the animals numbered N-1 and 1.  There are two kinds of animals in this zoo: honest sheep that only speak the truth, and lying wolves that only tell lies.  Snuke cannot tell the difference between these two species, and asked each animal the following question: "Are your neighbors of the same species?" The animal numbered i answered s_i. Here, if s_i is `o`, the animal said that the two neighboring animals are of the same species, and if s_i is `x`, the animal said that the two neighboring animals are of different species.  More formally, a sheep answered `o` if the two neighboring animals are both sheep or both wolves, and answered `x` otherwise. Similarly, a wolf answered `x` if the two neighboring animals are both sheep or both wolves, and answered `o` otherwise.  Snuke is wondering whether there is a valid assignment of species to the animals that is consistent with these responses. If there is such an assignment, show one such assignment. Otherwise, print `-1`.

Submission attempts (in order):
n = int(input())
s = input()
# S -> 0, W -> 1
ds = [(0,0),(0,1),(1,0),(1,1)]

for d0,d1 in ds:
    a = [d0,d1]
    for i in range(1,n-1):
        if s[i] == "o" and a[i] == 0:
            a.append(a[i-1])
        elif s[i] == "x" and a[i] == 0:
            a.append(a[i-1]^1)
        elif s[i] == "o" and a[i] == 1:
            a.append(a[i-1]^1)
        else:
            a.append(a[i-1])
    
    X = ["S","W"]
    print(a)
    if a[n-1] == 0 and s[n-1] == "x":
        if a[0] != a[n-2]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
    if a[n-1] == 0 and s[n-1] == "o":
        if a[0] == a[n-2]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
    if a[n-1] == 1 and s[n-1] == "x":
        if a[0] == a[n-2]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
    if a[n-1] == 1 and s[n-1] == "o":
        if a[0] != a[n-2]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
print(-1)


n = int(input())
s = input()
# S -> 0, W -> 1
ds = [(0,0),(0,1),(1,0),(1,1)]

for d0,d1 in ds:
    a = [d0,d1]
    for i in range(1,n):
        if s[i] == "o" and a[i] == 0:
            a.append(a[i-1])
        elif s[i] == "x" and a[i] == 0:
            a.append(a[i-1]^1)
        elif s[i] == "o" and a[i] == 1:
            a.append(a[i-1]^1)
        else:
            a.append(a[i-1])
    
    X = ["S","W"]
    # print(a)
    if a[0] != a[-1]:continue
    a = a[:-1]
    if a[0] == 0 and s[0] == "x":
        if a[1] != a[-1]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
    if a[0] == 0 and s[0] == "o":
        if a[1] == a[-1]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
    if a[0] == 1 and s[0] == "x":
        if a[1] == a[-1]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
    if a[-0] == 1 and s[0] == "o":
        if a[1] != a[-1]:
            a = "".join([X[i] for i in a])
            print(a)
            exit()
print(-1)

Verdicts: Wrong Answer

Accepted