Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def add(a, b, m):
- res = [0] * m
- for i in range(m):
- res[i] = (a[i] + b[i]) % 2
- return res
- def cmp(a, b, m):
- res = 1
- for i in range(m):
- if a[i] != b[i]:
- res = 0
- break
- return res
- def contain(a, matrix, m):
- for i in matrix:
- if cmp(a, i[0], m):
- return 1
- return 0
- n, m = map(int, input().split())
- matrix = [0] * n
- for i in range(n):
- matrix[i] = list(map(int, input().split()))
- x = 2 ** n
- ans = []
- for i in range(x):
- binary = bin(i)[2:]
- permutation = (n - len(binary)) * "0" + binary
- curr = [0] * m
- for j in range(n):
- if permutation[j] == "1":
- curr = add(curr, matrix[j], m)
- if contain(curr, ans, m):
- print(permutation, curr)
- else:
- ans.append([curr, permutation])
- for i in range(len(ans)):
- for j in range(i + 1, len(ans)):
- if cmp(ans[i], ans[j], m):
- print(i, j, ans[i])
- print()
- for i in range(len(ans)):
- print(i, *ans[i])
- # A
- # 0 1 1 1 1 1 1 1 1 0 0 1 0 0
- # 0 1 1 1 0 1 1 1 0 1 1 0 1 1
- # 0 1 1 1 1 1 1 1 1 0 1 0 1 1
- # 0 0 0 0 0 0 0 0 0 0 1 1 1 1
- # B
- # 1 1 0 0 1 1 0 1 1 1 1 0 0 0
- # 1 1 0 1 0 0 0 1 1 0 0 1 0 0
- # 0 0 0 0 1 0 1 0 0 1 0 0 1 1
- # 1 1 0 0 0 1 1 1 1 0 1 0 1 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement