Войти
или
Зарегистрироваться
Маркетплейс
Курсы
Учебник
Учебник 2.0
ОГЭ/ЕГЭ
Олимпиады
Рубрикатор
Компилятор
Онлайн Компилятор
Компилятор Python (lite)
Редактор HTML Code
Статья Автор:
Рубцов Антон
19 задание кучи
Куча с делителями
def pi(pos): return dpi[pos] def fdel(n): a = {1+n, n+n} for i in range(2, n): if n % i == 0: a.add(i+n) return a def step(S, X, t): Y = set() for pos in S: if (t % 2 == 1) and (pi(pos) & X) or (t % 2 == 0) and (pi(pos) <= X): Y.add(pos) return Y swin = int(input()) dpi = {} for i in range(1, swin): dpi[i] = fdel(i) G = set([i for i in range(1, swin)]) LW = {1 : set([i for i in range(swin, 2*swin)]), 0 : set()} print(pi(swin-1)) t = 0 while t < 6: t += 1 R = step(G, LW[t % 2], t) G = G - R LW[(t + 1) % 2] = LW[(t + 1) % 2].union(R) print('R() = '.format(t),sorted(R),)
×
Одна куча
def pi(x): return{(x+3), (x+2), (x*2), (x*3)} def step(S, X, t): Y = set() for pos in S: if (t % 2 == 1) and (pi(pos) & X) or (t % 2 == 0) and (pi(pos) <= X): Y.add(pos) return Y swin = int(input()) k = 3 G = set([i for i in range(1, swin)]) L = set([i for i in range(swin, swin*k)]) L = L-G W = set() LW = {0 : W, 1 : L} t = 0 while t < 6: t += 1 R = step(G, LW[t % 2], t) G = G - R LW[(t + 1) % 2] = LW[(t + 1) % 2].union(R) print('R() = '.format(t),sorted(R),)
×
Чтобы оставить комментарий нужна авторизация
Печать