from itertools import combinations n, m = [int(el) for el in input().split()] orders = [[int(el) for el in input().split()] for _ in range(m)] def do_orders(prepared): soldiers = [False] * (n + 1) for p in prepared: soldiers[p] = True for a, b in orders: if soldiers[a] and not soldiers[b]: soldiers[a], soldiers[b] = soldiers[b], soldiers[a] first = soldiers.index(True) return all(soldiers[first : first + len(prepared)]) res = [f"{n % 2}"] for k in range(2, n): tmp = 0 for comb in combinations(range(1, n + 1), k): tmp += do_orders(comb) res.append(f"{tmp % 2}") res.append("1") print(" ".join(res))
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 | from itertools import combinations n, m = [int(el) for el in input().split()] orders = [[int(el) for el in input().split()] for _ in range(m)] def do_orders(prepared): soldiers = [False] * (n + 1) for p in prepared: soldiers[p] = True for a, b in orders: if soldiers[a] and not soldiers[b]: soldiers[a], soldiers[b] = soldiers[b], soldiers[a] first = soldiers.index(True) return all(soldiers[first : first + len(prepared)]) res = [f"{n % 2}"] for k in range(2, n): tmp = 0 for comb in combinations(range(1, n + 1), k): tmp += do_orders(comb) res.append(f"{tmp % 2}") res.append("1") print(" ".join(res)) |