class Operation: union = 1 intersection = 2 negation = 3 n, m, q = map(int, input().split()) sets = [set()] for i in range(1, n+1): sets.append(set(range(i, n+1, i))) for i in range(m): in_data = list(map(int, input().split())) operation = in_data[0] if operation == Operation.union: x, y = in_data[1], in_data[2] sets.append(sets[x].union(sets[y])) elif operation == Operation.intersection: x, y = in_data[1], in_data[2] sets.append(sets[x].intersection(sets[y])) else: x = in_data[1] sets.append(sets[1].difference(sets[x])) for i in range(q): x, v = map(int, input().split()) if v in sets[x]: print("TAK") else: print("NIE")
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 | class Operation: union = 1 intersection = 2 negation = 3 n, m, q = map(int, input().split()) sets = [set()] for i in range(1, n+1): sets.append(set(range(i, n+1, i))) for i in range(m): in_data = list(map(int, input().split())) operation = in_data[0] if operation == Operation.union: x, y = in_data[1], in_data[2] sets.append(sets[x].union(sets[y])) elif operation == Operation.intersection: x, y = in_data[1], in_data[2] sets.append(sets[x].intersection(sets[y])) else: x = in_data[1] sets.append(sets[1].difference(sets[x])) for i in range(q): x, v = map(int, input().split()) if v in sets[x]: print("TAK") else: print("NIE") |