day 25 \o/
parent
460d51db5c
commit
666aa2bcad
|
@ -0,0 +1,125 @@
|
||||||
|
2-=0102020-02
|
||||||
|
1-02202=-1=-2==
|
||||||
|
1==00-101-=0-
|
||||||
|
211012=12222
|
||||||
|
112-20
|
||||||
|
11==0020-=20-=0=12=
|
||||||
|
122-22110
|
||||||
|
1==00-1201112==--=
|
||||||
|
1-10==11=
|
||||||
|
10=0=110-2
|
||||||
|
1111=000=2001=211=
|
||||||
|
22-21===0=-
|
||||||
|
2=022
|
||||||
|
11=-0100===
|
||||||
|
10=10--==-0
|
||||||
|
12=01-1
|
||||||
|
12-01--20121-2-=0-1
|
||||||
|
22-222--022-0-=01-
|
||||||
|
12-1
|
||||||
|
2-=2=02-1=
|
||||||
|
2210
|
||||||
|
1=2=0211
|
||||||
|
10=01=001-01
|
||||||
|
2
|
||||||
|
201=-1
|
||||||
|
11---10
|
||||||
|
1=-0=
|
||||||
|
1=-021
|
||||||
|
1-2=02012111=01=-100
|
||||||
|
1101=20=
|
||||||
|
20-1-
|
||||||
|
2-1020---
|
||||||
|
2=121=0=10=
|
||||||
|
1022-22211112=-1
|
||||||
|
2-1-
|
||||||
|
210--==00
|
||||||
|
12=1122-10
|
||||||
|
1=2222=2-=21=0
|
||||||
|
1=021=
|
||||||
|
1=10-1201
|
||||||
|
1=1
|
||||||
|
1-=-==0201-=1=0
|
||||||
|
22=2=211-0-1=2=1
|
||||||
|
1=21-=002111
|
||||||
|
102112=10021
|
||||||
|
1===-111-=2001122
|
||||||
|
10--
|
||||||
|
1-
|
||||||
|
1-2-2
|
||||||
|
11-1-1-02-
|
||||||
|
1=20--=1=0101-1001
|
||||||
|
12012-
|
||||||
|
1220-1--00
|
||||||
|
1=2=1-
|
||||||
|
12-0=2022=0100-1
|
||||||
|
12=2-=-=221==2=
|
||||||
|
2-2-
|
||||||
|
1=-1-01-0=
|
||||||
|
12---2=
|
||||||
|
1=1=1102-==010
|
||||||
|
10-=--200=
|
||||||
|
1=2212=-
|
||||||
|
12-121=-
|
||||||
|
1===0-=20-=
|
||||||
|
1=2020-01---112=1-
|
||||||
|
101=00111=20=
|
||||||
|
1=2=01=1-2==0-
|
||||||
|
2=-100---00
|
||||||
|
1==1=01--===0-10-
|
||||||
|
1==-=0-20
|
||||||
|
1=2011121=10--2
|
||||||
|
2-=0-01-=--12102=
|
||||||
|
200
|
||||||
|
2==22=0002-210
|
||||||
|
102
|
||||||
|
1-22221
|
||||||
|
20==00
|
||||||
|
1-22--2-0=10=11-1
|
||||||
|
1=12=2
|
||||||
|
1=-12-=
|
||||||
|
10-020-100=0=
|
||||||
|
1-11111
|
||||||
|
1=02-002220
|
||||||
|
20==0120210--1
|
||||||
|
100-121=2-2-=00=
|
||||||
|
21
|
||||||
|
11=-=-
|
||||||
|
2-=1100=10102-
|
||||||
|
112--0-2=1--=2=
|
||||||
|
1-1==100
|
||||||
|
1--02-0=1-
|
||||||
|
1102-
|
||||||
|
1-2-21-
|
||||||
|
22=1=-000=210-12
|
||||||
|
1=112-12-
|
||||||
|
1====120==0
|
||||||
|
20=2=22=22=2-=2=
|
||||||
|
1=21201=
|
||||||
|
2202202-20
|
||||||
|
1=-2=-==--200101
|
||||||
|
12010
|
||||||
|
1--22=2--02
|
||||||
|
102==-
|
||||||
|
2-==1-10
|
||||||
|
12-==12-2
|
||||||
|
22=-11110=2-211
|
||||||
|
1-0
|
||||||
|
1=02=20-1=--
|
||||||
|
1-20
|
||||||
|
1102---10
|
||||||
|
11=2-==2=1-
|
||||||
|
2=2-
|
||||||
|
2=10=2==221=01
|
||||||
|
1--==-1==
|
||||||
|
1011-111
|
||||||
|
1-2-=---012-21
|
||||||
|
1=-==0
|
||||||
|
1=0011=11112102=
|
||||||
|
10-0-=202
|
||||||
|
2-----12=
|
||||||
|
1=-2221020=01-10
|
||||||
|
12-2201==
|
||||||
|
1-102
|
||||||
|
22-100=0-===
|
||||||
|
100=0-0
|
|
@ -0,0 +1,13 @@
|
||||||
|
1=-0-2
|
||||||
|
12111
|
||||||
|
2=0=
|
||||||
|
21
|
||||||
|
2=01
|
||||||
|
111
|
||||||
|
20012
|
||||||
|
112
|
||||||
|
1=-1=
|
||||||
|
1-12
|
||||||
|
12
|
||||||
|
1=
|
||||||
|
122
|
|
@ -0,0 +1,43 @@
|
||||||
|
def eval(num):
|
||||||
|
digits = ["=-012".index(c)-2 for c in num]
|
||||||
|
n = 0
|
||||||
|
for x in digits:
|
||||||
|
n = n*5 + x
|
||||||
|
return n
|
||||||
|
|
||||||
|
def tosnafu(n):
|
||||||
|
orig = n
|
||||||
|
digits = []
|
||||||
|
while n != 0:
|
||||||
|
n, d = divmod(n, 5)
|
||||||
|
digits.append(d)
|
||||||
|
print(digits)
|
||||||
|
|
||||||
|
carry = 0
|
||||||
|
for i in range(len(digits)):
|
||||||
|
d = digits[i] + carry
|
||||||
|
carry, d = divmod(d, 5)
|
||||||
|
if d > 2:
|
||||||
|
carry += 1
|
||||||
|
d -= 5
|
||||||
|
digits[i] = d
|
||||||
|
if carry:
|
||||||
|
digits.append(carry)
|
||||||
|
digits.reverse()
|
||||||
|
snafu = "".join("=-012"[d+2] for d in digits)
|
||||||
|
print(n, digits, snafu)
|
||||||
|
assert eval(snafu) == orig
|
||||||
|
return snafu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
t = 0
|
||||||
|
for line in open("input"):
|
||||||
|
n = (eval(line.strip()))
|
||||||
|
print(n)
|
||||||
|
t += n
|
||||||
|
|
||||||
|
print(t)
|
||||||
|
print(tosnafu(t))
|
||||||
|
|
Loading…
Reference in New Issue