import sys
e = "PKN"
if __name__ == '__main__':
g = sys.stdin.readline().strip()
n, t = map(int, sys.stdin.readline().strip().split())
mxv = 0
for i in range(n):
mxv = mxv*2+1
cnt = 0
while mxv > 0:
cnt += 1
mxv //= 3
for it in range(t):
s = sys.stdin.readline().strip()
ans = []
cur = 0
for i in range(n):
cur = cur*2+int(s[n-1-i])
for i in range(cnt):
now = e[cur%3]
print(now, flush=True)
c = sys.stdin.readline()
for j in range(3):
if e[j] == c[0]:
ans.append(j)
break
if i+1<cnt and c[0] != now:
print(c[0], flush=True)
c = sys.stdin.readline()
cur //= 3
cur = 0
for i in range(cnt):
cur = cur*3+ans[cnt-1-i]
res = []
while cur > 0:
res.append(str(cur%2))
cur //= 2
for i in range(len(res), n):
res.append('0')
print("! " + "".join(res[:n]), flush=True)
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 | import sys e = "PKN" if __name__ == '__main__': g = sys.stdin.readline().strip() n, t = map(int, sys.stdin.readline().strip().split()) mxv = 0 for i in range(n): mxv = mxv*2+1 cnt = 0 while mxv > 0: cnt += 1 mxv //= 3 for it in range(t): s = sys.stdin.readline().strip() ans = [] cur = 0 for i in range(n): cur = cur*2+int(s[n-1-i]) for i in range(cnt): now = e[cur%3] print(now, flush=True) c = sys.stdin.readline() for j in range(3): if e[j] == c[0]: ans.append(j) break if i+1<cnt and c[0] != now: print(c[0], flush=True) c = sys.stdin.readline() cur //= 3 cur = 0 for i in range(cnt): cur = cur*3+ans[cnt-1-i] res = [] while cur > 0: res.append(str(cur%2)) cur //= 2 for i in range(len(res), n): res.append('0') print("! " + "".join(res[:n]), flush=True) |
English