n, m, q = map(int, input().split())
S = "1" * n
zbiory_zlozone = [None, int(S, 2)]
for i in range(1, n):
S = ("0" * i + "1") * (n // (i + 1))
zbiory_zlozone.append(int(S + "0" * (n - len(S)), 2))
for _ in range(m):
op = map(int, input().split())
typ = next(op)
if typ == 1:
zbiory_zlozone.append(zbiory_zlozone[next(op)] | zbiory_zlozone[next(op)])
elif typ == 2:
zbiory_zlozone.append(zbiory_zlozone[next(op)] & zbiory_zlozone[next(op)])
else:
zbiory_zlozone.append(~zbiory_zlozone[next(op)])
for _ in range(q):
x, v = map(int, input().split())
iv = 1 << (n - v)
print("TAK" if zbiory_zlozone[x] & iv != 0 else "NIE")
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | n, m, q = map(int, input().split()) S = "1" * n zbiory_zlozone = [None, int(S, 2)] for i in range(1, n): S = ("0" * i + "1") * (n // (i + 1)) zbiory_zlozone.append(int(S + "0" * (n - len(S)), 2)) for _ in range(m): op = map(int, input().split()) typ = next(op) if typ == 1: zbiory_zlozone.append(zbiory_zlozone[next(op)] | zbiory_zlozone[next(op)]) elif typ == 2: zbiory_zlozone.append(zbiory_zlozone[next(op)] & zbiory_zlozone[next(op)]) else: zbiory_zlozone.append(~zbiory_zlozone[next(op)]) for _ in range(q): x, v = map(int, input().split()) iv = 1 << (n - v) print("TAK" if zbiory_zlozone[x] & iv != 0 else "NIE") |
English