You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
985 B

lines = open("input.txt", 'r').read().splitlines()
leng = len(lines)
bits = len(lines[0])
def fun(bol):
targetCandidates = list(range(0,leng))
rating = 0
target = True
for i in range(0, bits):
count = 0
vacate = []
for j in targetCandidates:
if len(targetCandidates) == 1:
o2 = int(lines[j], 2)
break
elif i != 0 and bool(int(lines[j][i-1])) != target :
vacate.append(j)
elif bool(int(lines[j][i])):
count += 1
targetCandidates = [i for i in targetCandidates if i not in vacate]
if count >= len(targetCandidates)/2 and bol:
target = True
elif count < len(targetCandidates)/2 and not bol:
target = True
else:
target = False
if len(targetCandidates) == 2:
if bool(int(lines[targetCandidates[0]][i])) == target:
return int(lines[targetCandidates[0]], 2)
else:
return int(lines[targetCandidates[1]], 2)
elif len(targetCandidates) == 1:
return int(lines[targetCandidates[0]], 2)
print(fun(True)*fun(False))