|
|
@@ -0,0 +1,29 @@ |
|
|
|
def decode(string, swap={'1': 1, '=': -2, '-': -1, '0': 0, '2': 2}): |
|
|
|
return sum(5 ** i * swap[c] for i, c in enumerate(string[::-1])) |
|
|
|
|
|
|
|
|
|
|
|
def base5(n): |
|
|
|
ns = [] |
|
|
|
while n: |
|
|
|
ns.append(n % 5) |
|
|
|
n //= 5 |
|
|
|
return ns[::-1] |
|
|
|
|
|
|
|
|
|
|
|
def encode(n, swap={1: '1', -2: '=', -1: '-', 0: '0', 2: '2'}): |
|
|
|
ms = [] |
|
|
|
carry = 0 |
|
|
|
for n in base5(n)[::-1]: |
|
|
|
n += carry |
|
|
|
if n > 2: |
|
|
|
carry, value = 1, n % 3 - 2 |
|
|
|
else: |
|
|
|
carry, value = 0, n |
|
|
|
ms.append(swap[value]) |
|
|
|
if carry: |
|
|
|
ms.append(swap[carry]) |
|
|
|
return ''.join(ms[::-1]) |
|
|
|
|
|
|
|
|
|
|
|
n = sum(map(decode, open(0).read().splitlines())) |
|
|
|
print(encode(n)) |