import sys
# Wczytywanie danych
n, m, q = map(int, sys.stdin.readline().split())
# Inicjalizacja zbiorów podstawowych A1, ..., An
A = [set() for _ in range(n + m + 1)]
for i in range(1, n + 1):
for j in range(i, n + 1, i):
A[i].add(j)
# Obsługa operacji
for i in range(n + 1, n + m + 1):
line = list(map(int, sys.stdin.readline().split()))
if line[0] == 1: # Suma
A[i] = A[line[1]] | A[line[2]]
elif line[0] == 2: # Przecięcie
A[i] = A[line[1]] & A[line[2]]
elif line[0] == 3: # Negacja
A[i] = set(range(1, n + 1)) - A[line[1]]
# Obsługa zapytań
output = []
for _ in range(q):
x, v = map(int, sys.stdin.readline().split())
output.append("TAK" if v in A[x] else "NIE")
# Wypisanie odpowiedzi
sys.stdout.write("\n".join(output) + "\n")
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 | import sys # Wczytywanie danych n, m, q = map(int, sys.stdin.readline().split()) # Inicjalizacja zbiorów podstawowych A1, ..., An A = [set() for _ in range(n + m + 1)] for i in range(1, n + 1): for j in range(i, n + 1, i): A[i].add(j) # Obsługa operacji for i in range(n + 1, n + m + 1): line = list(map(int, sys.stdin.readline().split())) if line[0] == 1: # Suma A[i] = A[line[1]] | A[line[2]] elif line[0] == 2: # Przecięcie A[i] = A[line[1]] & A[line[2]] elif line[0] == 3: # Negacja A[i] = set(range(1, n + 1)) - A[line[1]] # Obsługa zapytań output = [] for _ in range(q): x, v = map(int, sys.stdin.readline().split()) output.append("TAK" if v in A[x] else "NIE") # Wypisanie odpowiedzi sys.stdout.write("\n".join(output) + "\n") |
English