74 lines
1.2 KiB
Python
74 lines
1.2 KiB
Python
from lib import get_data
|
|
|
|
data = get_data(__file__)
|
|
|
|
cups = list(map(int, list(data.strip())))
|
|
min_label = min(cups)
|
|
max_label = max(cups)
|
|
|
|
cmap = {}
|
|
for i in range(len(cups)):
|
|
cmap[cups[i]] = cups[(i + 1) % len(cups)]
|
|
|
|
cc = cups[0]
|
|
for _ in range(100):
|
|
a = cmap[cc]
|
|
b = cmap[a]
|
|
c = cmap[b]
|
|
|
|
cmap[cc] = cmap[c]
|
|
|
|
dest = cc - 1
|
|
while dest in {a, b, c} or dest < min_label:
|
|
dest = dest - 1
|
|
if dest < min_label:
|
|
dest = max_label
|
|
|
|
cmap[c] = cmap[dest]
|
|
cmap[dest] = a
|
|
|
|
cc = cmap[cc]
|
|
|
|
s = ""
|
|
cup = cmap[1]
|
|
while cup != 1:
|
|
s += str(cup)
|
|
cup = cmap[cup]
|
|
print(s)
|
|
|
|
cups = list(map(int, list(data.strip())))
|
|
current = max(cups) + 1
|
|
while len(cups) != 1_000_000:
|
|
cups.append(current)
|
|
current += 1
|
|
|
|
min_label = min(cups)
|
|
max_label = max(cups)
|
|
cmap = {}
|
|
for i in range(len(cups)):
|
|
cmap[cups[i]] = cups[(i + 1) % len(cups)]
|
|
|
|
cc = cups[0]
|
|
for _ in range(10_000_000):
|
|
a = cmap[cc]
|
|
b = cmap[a]
|
|
c = cmap[b]
|
|
|
|
cmap[cc] = cmap[c]
|
|
|
|
dest = cc - 1
|
|
while dest in {a, b, c} or dest < min_label:
|
|
dest = dest - 1
|
|
if dest < min_label:
|
|
dest = max_label
|
|
|
|
cmap[c] = cmap[dest]
|
|
cmap[dest] = a
|
|
|
|
cc = cmap[cc]
|
|
|
|
a = cmap[1]
|
|
b = cmap[a]
|
|
|
|
print(a * b)
|