Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from functools import cache
- @cache
- def Solve(a, b, n, depth):
- if a == b:
- return 0
- if depth == 0:
- return -1
- res = -1
- for m in range(2**n):
- if (a & m).bit_count() % 2 == 1:
- val = Solve(a ^ m, b, n, depth - 1)
- if val != -1 and (res == -1 or val + 1 < res):
- res = val + 1
- return res
- cases = []
- for n in range(1, 8+1):
- for i in range(2**n):
- for j in range(2**n):
- res = Solve(i, j, n, 2)
- cases.append((n,
- [((i >> k)&1) for k in range(n)],
- [((j >> k)&1) for k in range(n)],
- res))
- assert res <= 2
- with open('C-test.in', 'wt') as f, open('C-test.ref', 'wt') as g:
- print(len(cases), file=f)
- for n, a, b, ans in cases:
- print(n, file=f)
- print(*a, file=f)
- print(*b, file=f)
- print(ans, file=g)
Advertisement
Add Comment
Please, Sign In to add comment