parent
451aa90a8a
commit
1777f5bb24
2 changed files with 39 additions and 0 deletions
@ -0,0 +1,2 @@ |
||||
*.swp |
||||
*.swo |
@ -0,0 +1,37 @@ |
||||
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)) |
||||
|
Loading…
Reference in new issue