def podział_na_zbiory(n):
zbiory = [[] for _ in range(n+1) ]
index = 1
for zbiór in zbiory[1:]:
mul = 1
while index*mul <= n:
zbiór.append(index*mul)
mul += 1
index += 1
return zbiory[:]
def suma(x:[], y:[],n):
m = x.copy()
for item in y:
if item not in m:
m.append(item)
m.sort()
return m
def iloczyn(x:[], y:[],n):
m = []
for number in range(n):
if number in x and number in y:
m.append(number)
return m
def negacja(x:[],y:[] ,n):
m = []
for number in range(1,n):
if number not in x:
m.append(number)
return m
operacje = {
'1':suma,
'2':iloczyn,
'3':negacja
}
def sprawdz(zbior, liczba):
if liczba in zbior:
print('TAK')
else:
print('NIE')
def odczytaj():
first_line = input().split()
N = int(first_line[0])
M = int(first_line[1])
Q = int(first_line[2])
zbiory = podział_na_zbiory(N)
for m in range(M):
linia = input().split()
try:
operation = operacje[linia[0]]
x = int(linia[1])
y = int(linia[2])
except Exception:
operation = operacje[linia[0]]
x = int(linia[1])
y = 0
zbiory.append(operation(x=zbiory[x],y=zbiory[y],n=N))
for q in range(Q):
linia = input().split()
sprawdz(zbiory[int(linia[0])],int(linia[1]))
#return zbiory[1:]
odczytaj()
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 68 | def podział_na_zbiory(n): zbiory = [[] for _ in range(n+1) ] index = 1 for zbiór in zbiory[1:]: mul = 1 while index*mul <= n: zbiór.append(index*mul) mul += 1 index += 1 return zbiory[:] def suma(x:[], y:[],n): m = x.copy() for item in y: if item not in m: m.append(item) m.sort() return m def iloczyn(x:[], y:[],n): m = [] for number in range(n): if number in x and number in y: m.append(number) return m def negacja(x:[],y:[] ,n): m = [] for number in range(1,n): if number not in x: m.append(number) return m operacje = { '1':suma, '2':iloczyn, '3':negacja } def sprawdz(zbior, liczba): if liczba in zbior: print('TAK') else: print('NIE') def odczytaj(): first_line = input().split() N = int(first_line[0]) M = int(first_line[1]) Q = int(first_line[2]) zbiory = podział_na_zbiory(N) for m in range(M): linia = input().split() try: operation = operacje[linia[0]] x = int(linia[1]) y = int(linia[2]) except Exception: operation = operacje[linia[0]] x = int(linia[1]) y = 0 zbiory.append(operation(x=zbiory[x],y=zbiory[y],n=N)) for q in range(Q): linia = input().split() sprawdz(zbiory[int(linia[0])],int(linia[1])) #return zbiory[1:] odczytaj() |
English