Day05
This commit is contained in:
parent
b34bf33f67
commit
583e10b4e0
1 changed files with 52 additions and 0 deletions
52
day05.py
Normal file
52
day05.py
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from functools import cmp_to_key
|
||||||
|
|
||||||
|
|
||||||
|
o = {}
|
||||||
|
p = {}
|
||||||
|
i = []
|
||||||
|
|
||||||
|
with open("day05") as f:
|
||||||
|
l = f.readline()
|
||||||
|
while l != '\n':
|
||||||
|
a,b = map(int, l.strip().split('|'))
|
||||||
|
|
||||||
|
if a in o: o[a].add(b)
|
||||||
|
else: o[a] = {b}
|
||||||
|
|
||||||
|
if b in p: p[b].add(a)
|
||||||
|
else: p[b] = {a}
|
||||||
|
|
||||||
|
l = f.readline()
|
||||||
|
|
||||||
|
for l in f:
|
||||||
|
i.append(list(map(int, l.strip().split(','))))
|
||||||
|
|
||||||
|
# 1
|
||||||
|
res = 0
|
||||||
|
un = []
|
||||||
|
for l in i:
|
||||||
|
for j in range(len(l)):
|
||||||
|
if l[j] in o:
|
||||||
|
if not set(l[j+1:]) <= o[l[j]]:
|
||||||
|
un.append(l)
|
||||||
|
break
|
||||||
|
if l[j] in p:
|
||||||
|
if not set(l[:j]) <= p[l[j]]:
|
||||||
|
un.append(l)
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
res += l[len(l)//2]
|
||||||
|
|
||||||
|
# 2
|
||||||
|
def cmp(a,b):
|
||||||
|
if a in o and b in o[a]: return -1
|
||||||
|
if b in o and a in o[a]: return 1
|
||||||
|
else: return 0
|
||||||
|
|
||||||
|
|
||||||
|
res = 0
|
||||||
|
for l in un:
|
||||||
|
ls = sorted(l, key=cmp_to_key(cmp))
|
||||||
|
res += ls[len(ls)//2]
|
Loading…
Reference in a new issue