parent
6c175f2d8e
commit
85e623a9db
21
day13/sol.py
21
day13/sol.py
|
@ -4,38 +4,31 @@ data = []
|
|||
for chunk in open("input").read().split("\n\n"):
|
||||
data.append([json.loads(x) for x in chunk.splitlines(False)])
|
||||
|
||||
def less(a, b):
|
||||
def cmp(a, b):
|
||||
if type(a) == int and type(b) == int:
|
||||
return a < b
|
||||
return (a > b) - (a < b)
|
||||
if type(a) == list and type(b) == int:
|
||||
b = [b]
|
||||
elif type(a) == int and type(b) == list:
|
||||
a = [a]
|
||||
|
||||
for x, y in zip(a,b):
|
||||
if less(x,y):
|
||||
return True
|
||||
elif less(y,x):
|
||||
return False
|
||||
return len(a)<len(b)
|
||||
r = cmp(x,y)
|
||||
if r != 0:
|
||||
return r
|
||||
return cmp(len(a),len(b))
|
||||
|
||||
#print(data)
|
||||
|
||||
t = 0
|
||||
for i,(a,b) in enumerate(data):
|
||||
#print("<" if less(a,b) else ">=")
|
||||
if less(a,b):
|
||||
if cmp(a,b) < 0:
|
||||
t += i + 1
|
||||
print(t)
|
||||
|
||||
|
||||
import functools
|
||||
def cmp(a, b):
|
||||
if less(a,b):
|
||||
return -1
|
||||
if less(b,a):
|
||||
return 1
|
||||
return 0
|
||||
|
||||
big = [e for x in data for e in x]
|
||||
big.append([[2]])
|
||||
|
|
Loading…
Reference in New Issue