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