Day 13 (minified version 3)
This commit is contained in:
@@ -1,9 +1,5 @@
|
|||||||
from functools import reduce
|
from functools import reduce; from math import gcd; lcm = lambda a, b: abs(a*b) // gcd(a, b)
|
||||||
from math import gcd
|
|
||||||
lcm = lambda a, b: abs(a*b) // gcd(a, b)
|
|
||||||
def merge(a, b, x, y):
|
def merge(a, b, x, y):
|
||||||
while b != y:
|
while b != y: b += a * (max(-1, y-b-1) // a + 1); y += x * (max(-1, b-y-1) // x + 1)
|
||||||
if b < y: b += a * ((y-b-1) // a + 1)
|
|
||||||
else: y += x * ((b-y-1) // x + 1)
|
|
||||||
return lcm(a, x), b
|
return lcm(a, x), b
|
||||||
print(reduce(lambda fn, fm: merge(*fn, *fm), ((int(x), -idx) for idx, x in enumerate([x.strip() for x in open("input.txt")][1].split(',')) if x != 'x'), (1, 0))[1])
|
print(reduce(lambda fn, fm: merge(*fn, *fm), ((int(x), -idx) for idx, x in enumerate([x.strip() for x in open("input.txt")][1].split(',')) if x != 'x'), (1, 0))[1])
|
||||||
|
|||||||
Reference in New Issue
Block a user