|
|
@@ -0,0 +1,26 @@ |
|
|
|
import sys |
|
|
|
from itertools import count |
|
|
|
|
|
|
|
import toolkit |
|
|
|
|
|
|
|
|
|
|
|
text = sys.stdin.read() |
|
|
|
|
|
|
|
|
|
|
|
tid, string = text.split() |
|
|
|
tid = int(tid) |
|
|
|
found = [ |
|
|
|
next((tid + i, val) for i in count() if (tid + i) % val == 0) |
|
|
|
for val in [int(v) for v in string.split(',') if v != 'x'] |
|
|
|
] |
|
|
|
a, b = min(found) |
|
|
|
print((a - tid) * b) |
|
|
|
|
|
|
|
|
|
|
|
args = [(i, int(val)) for i, val in enumerate(string.split(',')) if val != 'x'] |
|
|
|
(last, step), *tail = args |
|
|
|
for offset, value in tail: |
|
|
|
i = next(i for i in count() if (last + i * step + offset) % value == 0) |
|
|
|
last += i * step |
|
|
|
step = toolkit.lcm(step, value) |
|
|
|
print(last) |