import sys
import builtins
N = 3155
#N = 5
def bin_to_3(bin_str):
liczba_dec = int(bin_str, 2)
wynik_tri = ""
while len(wynik_tri) < N:
wynik_tri = str(liczba_dec % 3) + wynik_tri
liczba_dec //= 3
return wynik_tri
def tri_na_bin(tri_str):
www = int(tri_str, 3)
sss = builtins.bin(www)
#print(name,'www', sss, file=sys.stderr)
return sss[2:]
def anal(a, b):
if a == 'P' and b == 'K': return 1
if a == 'P' and b == 'N': return -1
if a == 'K' and b == 'P': return -1
if a == 'K' and b == 'N': return 1
if a == 'N' and b == 'P': return 1
if a == 'N' and b == 'K': return -1
return 0
name = input()
l = input().split()
n = int(l[0])
t = int(l[1])
for T in range(t):
bin = input()
tr = bin_to_3(bin).translate(str.maketrans("012", "PKN"))
result = ""
i = 0
w = 0
while i<N:
c = tr[i]
if w == 1: c = 'K'
if w == -1: c = 'P'
print(c)
my_in = input()
if w==0:
result+=my_in[0]
w += anal(c, my_in[0])
if w==0:
i+=1
tr = result.translate(str.maketrans("PKN", "012"))
r2 = tri_na_bin(tr).zfill(n)
print('!', r2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import sys import builtins N = 3155 #N = 5 def bin_to_3(bin_str): liczba_dec = int(bin_str, 2) wynik_tri = "" while len(wynik_tri) < N: wynik_tri = str(liczba_dec % 3) + wynik_tri liczba_dec //= 3 return wynik_tri def tri_na_bin(tri_str): www = int(tri_str, 3) sss = builtins.bin(www) #print(name,'www', sss, file=sys.stderr) return sss[2:] def anal(a, b): if a == 'P' and b == 'K': return 1 if a == 'P' and b == 'N': return -1 if a == 'K' and b == 'P': return -1 if a == 'K' and b == 'N': return 1 if a == 'N' and b == 'P': return 1 if a == 'N' and b == 'K': return -1 return 0 name = input() l = input().split() n = int(l[0]) t = int(l[1]) for T in range(t): bin = input() tr = bin_to_3(bin).translate(str.maketrans("012", "PKN")) result = "" i = 0 w = 0 while i<N: c = tr[i] if w == 1: c = 'K' if w == -1: c = 'P' print(c) my_in = input() if w==0: result+=my_in[0] w += anal(c, my_in[0]) if w==0: i+=1 tr = result.translate(str.maketrans("PKN", "012")) r2 = tri_na_bin(tr).zfill(n) print('!', r2) |
English