29 lines
621 B
Plaintext
29 lines
621 B
Plaintext
|
#!/usr/bin/env python
|
||
|
|
||
|
gamma = 0
|
||
|
epsilon = 0
|
||
|
|
||
|
with open('input') as f:
|
||
|
total = 0
|
||
|
g_counts = [0,0,0,0,0,0,0,0,0,0,0,0]
|
||
|
e_counts = [0,0,0,0,0,0,0,0,0,0,0,0]
|
||
|
|
||
|
for line in f:
|
||
|
total += 1
|
||
|
for idx, chr in enumerate(line[0:12]):
|
||
|
if chr == '1':
|
||
|
g_counts[idx]+=1
|
||
|
else:
|
||
|
e_counts[idx]+=1
|
||
|
|
||
|
target = total / 2
|
||
|
for idx, val in enumerate(g_counts):
|
||
|
if val > target:
|
||
|
gamma += (1 << (11-idx))
|
||
|
for idx, val in enumerate(e_counts):
|
||
|
if val > target:
|
||
|
epsilon += (1 << (11-idx))
|
||
|
|
||
|
print(gamma * epsilon)
|
||
|
|