21 lines
501 B
Python
21 lines
501 B
Python
#!/usr/bin/env python3
|
|
|
|
|
|
def find(is_lowest):
|
|
lines = (x.strip() for x in open("input.txt"))
|
|
for bit in range(12):
|
|
zeros = []
|
|
ones = []
|
|
for line in lines:
|
|
zeros.append(line) if line[bit] == '0' else ones.append(line)
|
|
lines = zeros if (len(zeros) > len(ones)) != is_lowest else ones
|
|
if len(lines) <= 1:
|
|
break
|
|
return lines[0]
|
|
|
|
|
|
gamma = int(''.join(find(True)), 2)
|
|
epsilon = int(''.join(find(False)), 2)
|
|
|
|
print(gamma * epsilon)
|