Solve 2020/18
parent
6a818ec5ab
commit
f18d58cfeb
@ -0,0 +1,373 @@
|
||||
(8 + 5 + 5) + (8 + (2 * 6) + (6 * 6 * 9 * 8) + 3 + 9 * 8)
|
||||
(7 + 7 + 3) * 8 * (5 + 9 + 4 + (7 + 8 + 3 * 3 + 9 + 7) + (7 + 6 + 6) * 8) * (4 + 5 * 9)
|
||||
8 * (3 * (3 + 8 + 4 * 9) + (7 * 9) * (3 * 3 * 3 + 6 * 8 * 2) * 7) + 5 + 2
|
||||
2 * (2 + 9 + 6 * (5 + 9 * 2 * 2 * 5 * 5) * (6 * 9 + 4 + 8 + 4 * 9))
|
||||
3 + 2
|
||||
2 * ((5 * 5 + 9 * 5 * 3 + 7) + (8 * 8 + 4) + 7) * 7
|
||||
8 * 3 + 4
|
||||
(5 * 3 * (9 * 9 + 4 * 3) + 2) * (3 + 2 * 2 + (8 + 6) * 3 + 7)
|
||||
((6 + 4 * 5 + 9 + 7 + 9) + 2 + 4 * 3 + 5) + 5 * 4 + (5 * (2 * 5 + 3 + 8 + 4) * 5 * 8) * 8 + 9
|
||||
5 * 7 * (2 * 7 * 2 * 4 + 9) + 8 + 3 + 7
|
||||
2 * (8 + 9 + 5 * 2)
|
||||
3 * 2 + 6 * (6 + (4 + 9 + 7 * 8 * 5)) * 9
|
||||
8 + (3 * 5 + (5 + 3) * (2 + 8 + 6) * 2)
|
||||
(8 + 3 * 2 * (5 * 2 + 3) * 8) + 6 + ((8 + 8 + 4 * 6) * (5 * 4)) + 7
|
||||
2 * (6 * (3 * 5 + 3) + (2 + 9) * 8) + 6 * 4 * 7
|
||||
(2 + 7 + 9 * (3 * 3 + 4) + 5 * 5) * 9 * 4
|
||||
8 + 9 * 5 + 3 * 2 + 7
|
||||
2 + 9 * 4 + (3 + 9 * (6 + 2 * 2) + 9 * (8 + 8 * 3)) * 8
|
||||
9 * ((2 + 7) * 4 + 8 + 9 * 9) + 8
|
||||
(3 * 7 + (8 * 7) + 4 * (3 + 3 * 7 + 7 + 6)) + 2 + 9 * 8
|
||||
9 * (7 * 6 + (2 + 4 * 2 * 9 + 4)) + 9 * 5 * 3 * (6 + (6 + 8 + 8 + 2 * 5) + 5 * 3)
|
||||
(6 + 5 * 6) * (3 + 8 * 6) + 8 + 7
|
||||
(5 * (5 * 2 + 4 * 4 * 5 + 2) * 9 + (2 + 6 * 4 * 2 + 3) * 6) * 4 + ((3 * 7 + 3) + 7) * 8 * 6 * 2
|
||||
5 + 7 + 9 + 6 * 9 * 3
|
||||
8 + 2 * 2 * (8 * (4 * 9 + 4 * 8 * 8) * 3)
|
||||
5 + 5 + 3 + 3 * 7 + (8 + (3 * 9) * 8 * 3)
|
||||
6 * 8 + (5 * 8 * 4 + (4 + 7 * 4 * 4 * 4)) * 6 * 8
|
||||
6 * 2 + (2 + 9 * (2 + 2 + 4 * 5 + 6) * (4 * 9)) + 2 * 4 + 6
|
||||
2 + (8 + (4 + 7 * 5 * 5 + 4)) * 7 + 5 * (2 * 3 * 5 + 6 * 9)
|
||||
2 * 3 + 5 + (2 + (7 + 5 * 3) * (4 * 3))
|
||||
(9 + (3 * 7 * 3) * 9) * 6
|
||||
4 * (2 * 3 * (4 * 3)) * 6 + 7 * 8 * 3
|
||||
((7 * 6 + 6) + 8) + 8 + (5 + 7 + 4 + 5 + 8) + 5 + 4
|
||||
(9 * 7 + (3 * 9 + 7 + 5)) + 7 * 2 * (3 * 8 + 6) * 2 + 7
|
||||
9 * 2 * (5 * (5 + 6 * 6) + 8 * 8 + 7) * (4 + 2) * 7 * 4
|
||||
3 * (9 + (2 * 6 * 4) * 8 + 9 * (9 * 5 * 9) + (2 + 4)) + 2 + (7 * 3 * 3) + 8 + ((2 + 6 + 7) * 9 * (3 + 6 * 5 + 5) + 7 + 3)
|
||||
2 * 3 + 8 + 3 + (9 * (3 * 7 * 5))
|
||||
(2 * (6 * 7 + 9 * 6 + 9) * 6 + 2) + 5 * 9
|
||||
(5 * 3) * 2 * 4 * 6 + 9 * (6 * 7 + 9 + 5 * 9 + 8)
|
||||
2 * 3 * ((8 * 8 * 7 * 7) * 2 * 7 * 5 + 4) * (3 * (3 + 4 * 7 + 4) + 7 * (2 * 2) * 8) * (6 + 6 * 7 + 6 * 7)
|
||||
9 * 6 * 9 + 6 * 4 + ((7 * 5 * 8 * 6 * 3) + 2 + 2)
|
||||
(9 + 7 * 6 * (3 * 8 * 7) * 9 + 9) * 3
|
||||
6 * 5 * 9 * 5 * 9 * 9
|
||||
3 + 9 + 8 * 7 * 8 + 4
|
||||
(3 * (9 * 5 + 8 + 5 + 9)) * 2 * 7
|
||||
(2 * 9) + (4 * (6 + 4 * 3 * 7 + 4) + (9 * 9 + 8) * 7 + 3) + 7
|
||||
(5 * 7 + 2 + 4) * 2 * 8 + 7
|
||||
((7 + 3) + 7 + 3) + 5 + 2
|
||||
3 * 4 * 7 + ((2 * 2 + 9 + 5 * 9) * 9 * 7 * (3 * 4 * 9 * 5)) + 9
|
||||
7 * 7 + 9 * (4 * (8 * 8) + 4 + 2) * 4
|
||||
7 + (4 + 7 + 9 + 3 + 7) + 8 + 7 * (6 + 8 + 9 + (9 + 2 * 5 + 7) + (4 * 9) * (2 * 6))
|
||||
5 + 9 * (2 + (7 + 5 * 4 * 3 + 4 + 4) + 8 * 8 * (4 * 8))
|
||||
6 + ((4 * 4) + (2 + 4 + 5 + 9 + 4 * 7) + (6 + 7 * 4 * 7 * 9 * 2) + 8 * 8 * (7 * 4)) + 4 + 9 + 8
|
||||
(6 + 4) + (3 * 9 + 3) * 4 * 9 * 9 * 8
|
||||
(6 * 8) * 8 + 4 * 4
|
||||
7 * 5 * 9 * 7 + 8 + (3 * 8 * (6 * 4 * 7) * 9 * (8 * 3 * 7 + 4 + 7))
|
||||
(2 * 8 * (7 + 5 * 3 * 6)) * 5
|
||||
6 * (8 * 9 * (3 * 9 + 4) * 7 * 3 * 6) + 3 + 6
|
||||
5 * 7 + 5 + 6 * 4 * (3 * 2 + 4 + 6 * (9 * 4 + 3 * 4 * 3 * 3) + 2)
|
||||
2 * ((4 + 3 * 8 * 2 + 2 + 8) + (6 * 6 + 5 * 4) + 7 + (4 + 4 + 5 + 3 + 5)) + 8 + 7 + 2 + 6
|
||||
(5 + 6) + 8 * (8 + 6 + 6 + 8 * 8) * 7 * 9 + 7
|
||||
(3 * 3 + 4) * 7 + (2 * 8 * (5 + 4 * 3 * 6 * 7 + 6) + 9 * 6 * (5 * 2)) * 8 * 6 * 2
|
||||
7 * 2
|
||||
(4 * (4 + 5 + 7 * 9 * 7 * 2) + 5) * 7 * 7 * 3 + 7 + 8
|
||||
2 * 2 * 6 * 9 * (9 * 5 * 4) + (6 + 2 + 7 * 2 * 6 * 3)
|
||||
9 + 6 + ((4 * 6 + 7 * 8 + 3) + 9 + 8 * 9 + (4 + 4) + 7) * 6 + 3
|
||||
5 * 2 + ((4 + 2 * 6) + (7 + 9 * 4)) * 7 + 4 + 2
|
||||
(8 + 6) * 9 + ((4 + 2 + 8 + 7) + 9 * (6 * 8 + 8 * 7 + 5))
|
||||
2 * (7 + 6) + 3 * 3 * 9
|
||||
(4 * 8 + (8 * 4 * 2 * 7 * 8) + 5 + 9) * 7 * 3 * 5 + 7
|
||||
7 + 8 + 5 * 2 * (3 + 3)
|
||||
5 + 5 * (4 * 4)
|
||||
2 * (9 + 2 + 9) * (3 * 7 + 2 + 4)
|
||||
(9 * (8 * 5 + 5 + 4)) * 7 + 6 * 9 + 8 + 3
|
||||
(3 + 2 + 4 + 2 + (5 * 3) + 3) + (4 * 5 + (2 * 5 * 5) + 9) * 3 * 4
|
||||
4 * (5 * 8 + 3 * 5 + 5) + 5 + 4
|
||||
(6 + 5 * 4 + 9 + 8 * 6) + 3 * 5 + (8 + (2 + 4) + 2 * 7 + 3)
|
||||
5 * 2 * ((3 + 2 + 2 * 7) + 8 * 8) * 4 + 3 * 8
|
||||
6 + 4 + (4 * 2 * 3 + 7 + 3 * 9) * 2 + 7 + 7
|
||||
2 + 3 + (3 * 3 + 8) + 8 + (4 + (5 + 8 + 5 + 4) * 9 + (6 * 8 + 7)) * 6
|
||||
5 * 2 + 4 * (6 * 6)
|
||||
8 + 4 + (8 * (5 * 5 * 8 + 3 + 5) + 8 * 5) + ((9 * 3 * 4 * 8) + 9 * 7 * 7) * 3 + ((9 * 5 * 4 * 8) * 2 * 2)
|
||||
5 * 9 * 6 + (9 + 9 + 8 + 8) * 9
|
||||
7 * 6 * 8 + 6
|
||||
3 + 5 + 3 * (5 + 3 * 4 + (8 * 4 * 9 + 3) + 4 * 5) + 4
|
||||
6 + 7 * 8 * 3
|
||||
4 + 4 + ((9 * 9 * 5) + 3 * (4 + 9)) * 9 + 9
|
||||
4 + 5 * 3 + (5 * 6 + 4 * 2 + 8) + ((3 + 3 + 9 + 3 + 3) + 5 + 5 * (7 + 6 + 3 * 7) + 9)
|
||||
3 * 5 * (2 + 5 * 9 + 3) * 7 + (9 * 6 + 5 * 5) * 7
|
||||
(9 * 2 * 3) * 5 * 9 * 9 + (2 + 2 + 8) * 4
|
||||
5 * (7 + 7 + (5 * 2 * 3 + 3 * 4 * 8) * 4 + (7 * 6 + 9 * 3 * 9 * 9)) + 6 + 2 + 6 + 9
|
||||
(9 + 5 + (9 + 7 + 4 + 7 * 7 + 3) * 3) * (5 + (2 + 2 + 4) * 3 * 6 * 5 + 2) * 3 * 4
|
||||
9 * (5 + 6 + 9 + 2 + 6 + 4) + 7 + 3 * 2 + (7 * 7 * 8 + 7 * 3 + 2)
|
||||
((9 + 4 + 7 * 4 + 4 + 7) + 6 + (3 + 7)) * 4 + (8 * 2 + 3) + 2 * 3
|
||||
(6 + 8) * (7 + 3 + 9 + 2 * 5 * 8)
|
||||
(9 + 6 * 2 * (6 + 8 + 2 * 9 * 9 * 2)) + 7 * 6
|
||||
(4 + 9 + (7 * 8 * 8 * 4) + 6) + 6 + (8 + 9 * (9 * 5 * 6) * 5 + (4 * 2 + 2) * 7)
|
||||
8 * (2 * (5 + 2 + 6 + 9) + 8) * 8 + 8 + 6
|
||||
6 + 8 * 4 * 2 + 2 * 3
|
||||
4 * (6 + 6 + (6 * 8 * 6 + 8 * 6 + 5) + 2 * 4) * 2 * 9 + 3
|
||||
4 * (4 + 4) + (5 + (2 * 3) * (4 + 4 + 7 * 4 + 2 + 3) * 6) * 8 * 4
|
||||
3 * 2 + (3 * 9 * 9)
|
||||
((5 * 3 + 7) * 5 + 7 + 6 + 2 + 3) * 5 + (9 + (8 + 4 + 2 * 2 * 9) * 8 + 9 * 5) + 7 * 3 * 9
|
||||
(3 + 3 * 2 * 5) * 2 * 6
|
||||
8 + 6 + 2 + 9 * (6 + 5 + 4 * 9 + (4 * 7 + 4 + 9 * 6 + 4)) + 5
|
||||
5 * 7 * (9 * 5 * (8 + 4 * 2 + 5) + (8 + 6 + 7 * 3)) + 2 * 9
|
||||
(8 * 7 * 2 * 2 * 8 + 6) + ((8 * 7 * 2 + 4 + 5) * 2 + (7 + 8)) + 3 + (9 * 6 * (6 * 9 + 4) * (8 * 9 * 3 * 2 + 3) + 7 * 5) * 2
|
||||
(2 + 7 * 9 * 6) * (5 + (7 + 8 * 5 + 5 + 4) * 4 * 4 * 2 + 6) + 3 + 2
|
||||
(6 * 5 + 3) * 5 + 7 + 9
|
||||
(3 + 7 + 6) * 4 * (8 + 9 * 9 * 7 * (9 + 2) * 8) * 9 + (8 + 3 * 2 + 4 + 9) * 8
|
||||
4 + ((7 * 5 * 9 * 5 * 7) * (5 + 4 * 3 + 4 + 3) + (7 + 5) + 9) + 9
|
||||
6 * ((4 + 9 + 8) + (5 * 4 * 6) * 6) * (4 + 5 * 2 + 8 + 2 * 3) * 8
|
||||
4 + 4 + 4
|
||||
8 + (8 + 2 + 8 + 4) + (2 * (7 + 7 + 8) + 7 * 5 * 7 + 6) * 3
|
||||
(2 + 7 + 7 + 2 * 3) * (7 + (6 + 6 * 4 * 6) + 6 + 3) + 5
|
||||
6 + ((2 * 8 * 8) + (5 + 2 + 4 * 6 + 7 + 5) * 2 + 3 * 4 + 9) * 3
|
||||
(4 + 6 + (6 + 7) + (2 + 3 + 3 * 4)) + 4 + 2 + 7
|
||||
(9 * 3 * 9 + 3 + 2) + (9 * (2 + 2 + 2)) * 6 + 6 * 9
|
||||
3 * 9 * 8 + 8 * (5 * 6) * (4 * 5 + 3 + 6)
|
||||
(4 * 9 + 2 * 6) * 4 * (9 + 7 * 3 * 5 + 2) * 3 * 4
|
||||
(5 + (4 * 5 + 6 * 4) * 5 * 7 * 8 * 4) * 3 + 8
|
||||
2 + ((8 + 3 + 3 + 8 * 6) + 5 * 6 + (3 * 7 * 4)) * 8 + 4 + 6
|
||||
6 * 4 * 4 * (3 * 9 + (4 * 4) * 4 + 5) * 5
|
||||
8 * (8 * (8 * 2 * 7 * 8 * 8))
|
||||
3 * 9 + 5 * ((6 + 6 + 2 * 3 * 7) * (2 + 9 * 3) + (4 + 5) * 5) * 7 * (7 * 4 + 6 * (8 + 4) + 9)
|
||||
2 + (2 * 4 + 4) + 8 + (5 + 6 + 3 * 3 * 2)
|
||||
(5 * (7 + 2 + 5 * 7 * 6) * 8 + (3 * 8) * 4) * 3
|
||||
(5 * 2 * (4 + 8 * 5 + 8) * 4 + 4 + 2) * 7 + 6 * 8 + ((7 * 7) * 4)
|
||||
3 + ((9 + 8 * 6 + 8 * 4) + 3 * 6) * 5 * 5 * 4 * 2
|
||||
(4 * 3) + ((6 * 4 * 5) * (9 + 7 * 4 + 2 + 2)) + (6 + 6 + 3 + 2 * 2 + 4) * 7
|
||||
5 + (4 + 8 * 5 * 8 * 3) * (6 * 5 * 3 * (2 * 7 + 9 * 3 * 3 * 2) * 3) * 3
|
||||
((4 + 2 + 3 * 8 * 2) * 4 + 6 * 2) * ((5 * 8 * 6) + (6 * 3 * 8 * 8) * 7 * (6 + 2 * 9))
|
||||
(4 + 2 + (4 * 7 + 3 + 6 * 7 * 4)) + 6 * 7 * 9
|
||||
5 + ((2 + 7 + 7 + 3) * 6 * 5) + 6 * 3 * 6 * 7
|
||||
7 * ((4 * 4 * 4 + 3 + 3) * (4 + 4 + 6 + 3 + 3 * 9)) + 4 * 6 * 8 + ((4 + 6) + 4 * 6 + 6 + 3)
|
||||
9 * (4 * 4 + 5 + 3 * (9 * 7 * 5)) * 6 + 4 * 2 + 6
|
||||
(5 * 6 * 4 * 4 + 6 * (5 * 4 + 4 + 5 + 4 * 7)) * 6
|
||||
((3 + 3) + 7 * 3) * 6 * (2 + 5)
|
||||
(2 * 3 + 3) + (5 * (3 + 2 + 3 + 4 + 8 * 7) * 7 * (4 * 5 * 7) * 8) * (7 + 2 + 2) * 7 * 2 + 7
|
||||
3 * 6 * 7 * 5 * (9 * 5 * 5)
|
||||
2 + 8 + ((6 + 2 * 4 * 2) * 8 * 4) + ((5 + 5 + 6) * 7 + 6 * 9 + 6 + 9)
|
||||
2 * 7 + 2 * 6 * 6 * ((6 * 5 + 7 + 4 + 4 + 2) * 4 + 8)
|
||||
5 + (2 + 7 * 7) * 3 + 3
|
||||
(5 + (9 * 8)) * 6 + 4 + 3 * 6
|
||||
6 * (8 + 5 + 3 * 5) * 8 + 4 + 8 + (4 * 5 * (6 + 8 + 5 + 2) + 6)
|
||||
4 * 6 + (8 + 3 + 5) + 8
|
||||
((5 + 6 * 3 * 5) * (8 + 7 + 6 + 5 * 7 * 7) * 8 * 5) * (3 * 7 + 5 * 8 * 2 * 5) + (2 + 7) * 2
|
||||
(3 + (8 * 9) + 5 + (8 + 9 * 7)) + 4 * 4 * ((8 * 6 + 9 * 9) + (2 * 6 * 8 + 5) + 8) * 3
|
||||
3 + 6 * (8 * 9) * 9
|
||||
9 * 9 + 4 * (8 + 5 * 5 * 7 + 4)
|
||||
4 * ((4 + 6 * 9 + 9 * 2 * 5) + 2 + 2 * 9 * 6) * 7 + ((8 + 2 * 6 + 3 * 2) + 4) + 6
|
||||
4 + (5 * 9 + 8) * (8 * (6 + 9 * 9 + 3 * 3) + 9 + 2 * (7 * 2) * (5 + 8 * 5)) + 2
|
||||
(4 + 5 + 6 + 6 + 8 * 8) + 2 * 7 * 4 * (5 * 2 + 6) * 7
|
||||
(8 + 2 * 3 + 8 * 2 * 9) * 6 + (6 + 6 * 2 + 6) + 9
|
||||
5 + 7 + (2 + 5 + 4 + 4 * 2 * 6)
|
||||
((4 * 7 + 7) * 8 * 9 * 8 + (3 + 7 * 3 * 5) + 9) * 3 * 5
|
||||
(6 + 9 + 5 + 3 + 5) * ((6 + 5) * 8 + 4 * 2)
|
||||
3 + 6 * (4 + 8 + 5 + 2) + 8 * ((4 + 6 + 6 + 4) * 4) * ((6 * 6) * 3 * 6 + 8 * 7)
|
||||
(9 * 2 + 5 * 5 + 5) * (3 * (7 * 3 * 9) * 2 * 5 * 4) * 4
|
||||
7 * ((4 + 7 * 8 + 2 * 5 * 9) + (3 + 8 * 5 + 8) * 2 + 2 + (2 * 6 * 8) * 7) + (8 * 5) * (2 * 2 * 4 * 5) + 7
|
||||
7 * 3 * 2 * (3 * (7 + 3 + 3 + 9 * 7) * 5 + 4 * 2 + 7) * 7 + (3 * 7 + 8 * (8 + 2 + 9 * 5) * 9 * 3)
|
||||
4 + 7 + 9 * (6 + (4 + 9 + 6 + 7 + 4) + (6 * 3) * (3 + 3 + 9 * 4 + 8 * 4))
|
||||
(2 + 7 * 9 * (8 + 5 + 2 + 5 * 7 * 3) * 9 + 5) * 4 + 7
|
||||
7 * 8 + 2 + 7 + (3 + 7 * 8 * 2) + (6 + 7 + 3)
|
||||
3 + 3 + (5 * 4 * (2 + 9 + 5 + 8 + 3 + 7) * 4) * 6 + 8 + (3 * 8 * 9)
|
||||
5 + (9 + (8 * 5 * 7 + 3 + 2) * 3 + 4 * 6 + 6) + 6 * 9 + 7
|
||||
4 * (4 * 3 * (4 + 6 + 2 * 8 * 7)) * 5 * 6
|
||||
5 * 5 * 9 * (9 + (8 + 3 * 4 + 3 + 6 * 6) + 7) + 7
|
||||
9 * 4 * 6 + (4 + 9 * 6 + 4) * (8 + 5 + 9) * 3
|
||||
7 + 7 * (3 * 7 * 3 + 3 * (4 * 2 * 6)) + (3 + 7 * 6 + (5 * 6) * 5) * (8 + 5) * 7
|
||||
7 + 4 + 7 * 2
|
||||
5 + 7 * 2 * 9 + (4 + (5 * 3 + 6 * 6 + 3 * 3))
|
||||
4 + (3 + 3 + 7 + 2 * 8) + (6 * 7)
|
||||
((6 + 8 * 6) * 9) + 8 + (5 + (3 + 6 + 9) * 5) + 3 * 3 + 5
|
||||
6 * (2 + 6 * (8 * 9 + 3 * 4 * 7) * 9) * 9
|
||||
(8 * 7 * 6) * 7 + 7 * 6 + 3
|
||||
3 * ((4 + 4 * 6 * 4 * 4 + 5) * 3 * 6 * (3 * 7 + 8 + 5 + 2) * (5 + 5) + 6) + 8
|
||||
5 * (6 * (9 + 5 + 7 + 8 * 4) + 9 * 3) * (3 * 8 + 3 + (6 * 4 * 3) * 7 * 7) + 5 * (6 * (7 * 4 + 9)) + (8 * 5)
|
||||
6 * 8 + ((4 * 4 + 4) + 9 * 4 + 8 + 5) + 6
|
||||
((5 * 6) * 4 * (6 + 3 + 7) * (5 + 7 + 5 * 5) + 6) * 7
|
||||
(4 * (2 * 9 * 6 * 8 * 9) * (5 * 4 * 3) + (5 * 7)) + 3 + 7
|
||||
(5 + (3 + 5 * 5 + 2 + 8 * 5) + 7 * 8 * 6 + 7) * 9 * 3 + 7 * 4
|
||||
(7 * 4 + 4 * 7 + 4) * 6 + 3
|
||||
6 + 4
|
||||
(6 * 3 * 9 + 8 + 7 * 5) + ((5 * 9 * 6 + 6 * 7) * (4 * 7 + 9 * 7 * 8) + 2 + (5 * 7 * 7 + 9 * 5) + 4 + 9) * 5 + 5 + 4 * 6
|
||||
7 * (9 * 2) * (4 + 7 * (2 * 6 * 6))
|
||||
(7 * 2 + 4) * 2 + 8 + 7 + 3 * ((4 * 7 * 7 * 6) * (8 * 4 * 7 * 2 * 7 + 5))
|
||||
4 * 9 * 9 + 2 + (3 + (8 + 8 + 8 + 3 + 9) + (5 * 7 + 5 * 3 + 4 * 8) + 6 * 3 * (3 + 3 * 6 * 8))
|
||||
3 + (9 * 9 * (5 + 9) + 8 * 6 + 3) * 9 + 5 + (7 + 9)
|
||||
(5 * 7) + 5 * 4 * 6 * 5 * 7
|
||||
9 * (4 + 4 + 3 + 3 + 6)
|
||||
3 * 8 * (9 + 3 + 6 + 6 + 8 + 5) + (4 * 2)
|
||||
3 + 6 + 4 * 6 * (9 * 8 * (7 + 6 * 8 + 9) * 4) + 9
|
||||
4 * 6 * (6 * 8 * (2 * 8 * 5 + 5) + 8)
|
||||
9 * 5 * 4 * 9 + (3 + 9 * 4) + 6
|
||||
5 + 7 + (2 + 2 * (2 * 8) * 2 + 6 + 8) + (9 * 3) * 7
|
||||
5 + (2 * 3 + (8 * 8 * 2 * 2 * 7 * 7) + 7 + 8 * 4) * 2 + 4
|
||||
8 * ((6 + 3 + 6 * 3 * 7) + (6 * 5 + 2 * 3 * 4 + 9) + 2 * (9 + 7 * 7)) + 7
|
||||
7 * (7 * 5 * 3) + 2 + (2 * 6 * 5 * 4 * 3 + 2)
|
||||
7 + 8 * 4 * 2 * 9 + (8 * 2 + 7)
|
||||
((4 * 8) * 5 + 2 + 3) * ((8 + 4) + 5) + (6 * (9 + 4) + (2 + 4 * 8 * 9 + 3 + 6) * 5) * ((9 + 9 * 3 * 5 * 8 * 9) + 9 + 3) + 2
|
||||
2 * ((8 * 3 + 5 + 7 + 3) * 9 + 7 * (2 * 6 * 6) + (7 * 7 + 4 * 9 * 8) * (9 + 9 + 3)) + (3 * 7 + 5 + (5 + 4 * 7) + (2 + 9 + 3 + 5 + 2 + 2) * 2) + 3 + 3 * 4
|
||||
(6 + 3 * 9 * (7 + 6) * 6) * 5 + 3 * 9
|
||||
(6 * 9 * (6 + 7 + 6)) + (7 * 8) * 7 * 3 + 5 + ((3 + 2 + 5 * 5) * 9 * 8)
|
||||
5 * (8 * 9 * 8 + 9 * (5 + 4 + 9 + 5 + 9 + 4)) + 9 + 4 * 3
|
||||
(8 * 3 + 8 * 3) + 3 + 9 + 8 * 9
|
||||
(2 * 9 * 4) * 4 + (2 * 4 * 8 + (6 * 2 * 7 + 6) * 7 * 8) + (5 * 5 * 8 + 8) * 5
|
||||
(7 * 7 + 2) + 7 * 6
|
||||
5 + 2 * 6 + 8 + (3 + 4 + 9 + 6)
|
||||
5 + 8 + 8 + 5 * (3 * 3 + 8 * 9) + 6
|
||||
4 * 4 * ((4 * 4) * 7 * 3) + 6 + 8
|
||||
3 * 6 + (8 + (8 + 9 + 4 * 5 * 2) + 5 + (3 + 5)) * 3
|
||||
5 * 3 + (6 + 5 * 4 * 2 * 2) + 9 * 6
|
||||
5 + 3 + 8 + 6
|
||||
7 + (9 + 3) + 6
|
||||
(9 + 5 * 5) * 7 + 9 * 7 * 4 + 9
|
||||
7 + (8 * 8 + 9 + 3) + 4 + 9 + 4
|
||||
8 + ((9 + 3) + 9 + (9 * 9 + 2 + 9 + 7 * 2) * 8 + 5 * 2) * 6
|
||||
(3 * 7 * 3 * 2) * 2 * ((5 * 8 * 7 * 2 + 2) * 9 + 8 * (4 * 5) * 2) + 9 * 6 * 9
|
||||
3 + 9 + (3 + 7 + 2) * 3 * 9 * 8
|
||||
(7 * 9 * 7) + 9 + 5 + ((5 * 8) * 6 * (3 * 8) * (7 * 8 * 6 * 2) + 5 * (5 + 5))
|
||||
3 * 7 + (6 + 4 * 5 * 3 + 4)
|
||||
3 * 4 * 2 + (4 + 3 + 3 + 7 * (6 * 4 * 7) * (6 * 4 + 5 * 3 * 2))
|
||||
6 + (8 * 4 * (2 + 5 * 9 + 3) * 7 * 8)
|
||||
8 + (9 * 7 + 3) + ((2 * 8 * 4 + 9 * 3 * 5) + 3 + 3) * (3 + 9 * 7 * 3 * 2) + 3
|
||||
2 * 9 * (5 + 8 + (8 + 3 * 9 * 7 * 2 * 4) * 8) * (5 + 7 * (5 + 7 + 2 * 9 + 8 * 4) * 3 + (7 + 7 + 5)) * 9 + 3
|
||||
(8 + 9 + 7 + 5) * (8 * (4 + 7 * 4 * 3 * 3 * 9)) * 4
|
||||
((8 * 7 + 3) * 2 + 2) * (4 + 9 * (4 + 2 + 6 * 4 * 4 * 7)) + 5 * 3
|
||||
9 + (6 * 6 * 8 + 5 + 6) * 8 * 7 * 2 * 4
|
||||
7 + 5 * 9 * (3 * 7 + 2) + ((7 + 5 + 5 + 3) * 5) + 9
|
||||
(9 + 7 * 4 * 8) + 8
|
||||
8 * 5 + 5 * (3 * 2 * 7)
|
||||
7 * 8 * 5 + (9 * 8 + 7 * (9 + 5 * 7) + 4 * 4) * 5 + 8
|
||||
(3 + 9 + 6 * (7 * 5) + 5) + 8 * 5 + 8 + 4
|
||||
8 * 6 + (6 * (4 * 7 + 2) + 4 * 2) * 2
|
||||
(3 + 8 * 8) + (6 * 7 + 8 + 2 * 3) * (5 + 5) * (5 * 9 * 2 + 8 + 8 * 9)
|
||||
9 * (6 + 4 + (7 + 6 + 7 + 9 * 8) * 6) * 6 * 5 * 3 * 9
|
||||
((3 + 9) + 4 * 3 * 3) * 5 + 6 * (6 + 5 * 5)
|
||||
3 * 2 + ((3 * 3) + 6 * (4 + 8 * 4 * 3 + 6) + 4) * (9 * 4 + 2 * (5 * 4 + 2 + 4 + 7)) * 2 * (7 * (6 + 8 * 5) + 7 * 8 + 2)
|
||||
(4 + 8 + 5) * ((3 * 2) * 9 + (5 * 6 * 7 + 6 + 8) + 4 + 9 + 6) + 5 * 6 + 4 * 6
|
||||
(3 * (3 * 9) * 2 + 6 * 8 + 6) * 5
|
||||
((9 * 8 * 4 * 4) + 5) + (2 + 8 + 6) * 4
|
||||
(3 * 9 + 6 + 3 + 6 * 7) + 4 * 7 * 7 + 6 + 9
|
||||
3 * 3 * 5 + 5 * 9 + (3 * (3 + 3) + (3 + 9 + 5 + 4 + 9))
|
||||
9 * ((6 + 9 * 5 + 3 + 2 + 4) + (8 + 5 + 4 * 6 * 6)) + (6 * 4 + 9 + 8 + 5 + 7)
|
||||
9 * (8 * 8 * 4 * 8 + 4) * 7
|
||||
5 * (5 * (6 * 6 + 4 + 7) * 5 * 2 * 5 + 6) + (4 * 5 + 2 + 6 * 6 * 9) * (2 * (5 * 6 + 7 + 8 + 2))
|
||||
7 * 7 * 3 * 8 * 7
|
||||
2 + 2 * 9 * (9 * 2 * 2 * 4 + (3 + 4 * 2 * 9 + 9 * 6) * 8) + 4 + 9
|
||||
(6 + 7) * 4 + 3 * 6 * (9 + 2 + 3)
|
||||
4 * (6 * 3 * 4) * ((4 * 3) * 7) * ((8 * 7) + 8 + (6 * 9 * 3))
|
||||
(4 * 4 + 7 + (6 * 6 + 5 * 8) * (8 + 2 + 3) * 8) + 7
|
||||
2 * (5 * (3 + 7 * 2) + 5 + 8 * 7) * 6 + (9 + (2 + 6 + 9 * 4 + 3) + (9 * 8 * 5 * 6 * 3 * 4) + 9 + 7 + 8) + 8
|
||||
((7 + 5 + 2) + 6 + 6 * (4 + 8 + 8) + 5) * (4 * 4 * 9 * (4 * 5) + 2 + 5) * 7
|
||||
2 * 6 + 7 * (7 + 2 + 5 + (5 * 3 * 4 * 9 * 6 * 7) * 9 + 3) + 5
|
||||
9 + 6 * 7 + ((8 + 2 * 5 + 3 + 5) + (7 + 2 + 9 * 2) + 5) + 5 * 6
|
||||
8 * (7 * 3 + 7 + 7 + 8) * 3 * (5 * 4 * 2 + 4 * 2)
|
||||
7 + 7 + 3 * 8 + ((5 + 3 * 7 + 2 * 4 * 4) * 8 * 4 + 7)
|
||||
8 + 8 + 4 * 3 + 9 * (2 + 5 + 3 * (6 * 2 + 5 + 2 + 2))
|
||||
7 * ((2 * 5 + 4 + 9 * 2) + 8 * 8) * 2 * 9 * 3
|
||||
5 * 8 + ((2 * 9 * 8 * 7 + 5) + 2 * 8 + 7) + 5
|
||||
(8 * (9 + 5 * 3 * 5) * (3 * 3)) + 5 + 2 * 5 + ((4 * 5 * 5 + 3 * 9 + 7) * 5 * (6 + 9 * 5 * 8) + 7) * 8
|
||||
(4 + (9 * 9) + (4 + 4 * 6) * 5 * (9 + 2)) * 3 + 9
|
||||
6 + 3 * 3 * (8 * 3 * 5 * (7 + 4 + 6 * 8 + 6 * 9) + 9)
|
||||
8 + (6 + 7) * 4 * 6
|
||||
(4 * 5 * 8 + 3 * 2) + 2 + (7 + 2 + 3 * 7 + 6 + 7) * 5
|
||||
5 + (2 * 7 * 6 + 2 * 9 * 6) * 2 * 3 + 3
|
||||
8 + (3 + 6 + 2) + 5 + 7 + 4
|
||||
5 + 9 + ((4 + 9 * 8 * 2 + 7) * 7 + 6 * 9 + 9) * 7
|
||||
((8 * 7 * 9 + 8 + 9 + 9) + 2 + 5) + 9 + 3 + 4
|
||||
8 * 6 * (4 + 2 + (4 + 3 * 5) + (7 * 4 + 9 * 9) + 9 + 4) * 4
|
||||
9 + 3 * 6 * 6 + (9 * 9 * 4 + (7 + 9 + 5 + 7 + 3)) + ((8 * 9 + 9 + 2) + 8 * (8 * 7 * 3 + 6 + 2 * 4))
|
||||
6 * 3 * 9 + (7 * (6 * 5 + 2 + 7))
|
||||
5 + 8 * (3 + 5 * (6 * 9 + 5 + 9 + 5))
|
||||
4 * 7 * 8 * (4 * (7 + 2 + 7 * 8 + 6 + 6) * 6 + 3)
|
||||
7 + (4 * 6 * 8 + 9 + (6 + 2 + 4 * 7 * 2))
|
||||
3 + 7 * 5 * 3 * (9 * 4) + 6
|
||||
(6 * 8 * 9 + 6 + 5) * 9 + 5 * 4 * 7
|
||||
9 + 4
|
||||
3 * (3 * 7 * (3 + 3 * 9 + 3 + 5) + 6)
|
||||
5 + 3 * (2 * 5 * 3) * 4 * 8
|
||||
6 + ((8 * 7 * 6 + 2 + 5 + 2) + 2) * 7 + 5
|
||||
3 + (9 + 2) * (4 + (9 + 8 * 2 + 5 + 5 + 5) + 7) * 4 * 2 + 5
|
||||
7 + 6 * 7 + 8 * (5 * 7 * 9 * 9 + 2)
|
||||
(9 * (3 * 8 * 9 * 8 + 7)) * 3 + 2 + 2
|
||||
(4 + 3 * 7 * (9 + 9)) + 5 + 9
|
||||
2 * 2 * (7 + 6 + 8 + 5 + 8 * 3) + 9 + (4 + 9 * 5 * 7 + 2 + 7) * 9
|
||||
3 * 2 * (5 * 8 * (5 + 6) * 7 * 2) + 7
|
||||
9 * 2 * 7 * (9 * 5 * 8 * (5 * 8 * 4 + 5 + 3))
|
||||
(8 * (3 + 2 * 4 * 4 + 4 * 2) + 2 + 8 + (7 * 3 * 6 * 6 + 5 + 9) * 9) + 5 + 7 * 9
|
||||
(5 * 3) + 3 * 2
|
||||
7 * 2 * 9 * 9 * 8 + (7 + 4 + (3 * 6 + 6 + 2) + 5)
|
||||
9 + ((6 + 2 * 9 * 2) * (7 * 4 * 6 + 3 * 7) + 5 + 9) + (5 + (5 * 4 * 5 * 8 + 8) + 5 * (3 * 2 * 2 + 4 + 3 * 4))
|
||||
(6 * (8 + 9 + 3 * 3)) + 7 * 6 * 4 + (9 + 4 * 2) + 4
|
||||
((2 + 2) + (8 * 7 * 6 + 4 * 2 + 6) + 3 + (5 + 8 + 2) * 2) + 6 * 9 + 2
|
||||
(3 + 6 + 7 * 2) * 9 + (4 * 9 + (2 + 6 + 4) + 4) + 6 + 9
|
||||
2 + 3 * 3 + 8 + (4 * 4 + 5 + 4 * 4 + 8) * 6
|
||||
(9 * 3) + 9
|
||||
8 * 9 + 4 * (7 * 6 + 3 * 3 + 5) * 8
|
||||
9 + 6 * 7 + 3 * ((8 + 3) + 9 * 3 + 8 + (3 + 7 + 7 * 4) + 7) + 4
|
||||
9 * 2 + 9 * ((8 + 7 * 8 + 7 + 7 + 4) + 4 * (9 * 8 + 3) * 2 + 4 + (5 * 5 * 5 + 2 + 2 + 9)) * 7
|
||||
3 + (8 + (6 * 9 + 6 + 9 + 4 + 9) + 5 * 2 + 6 + 6) + (9 * (8 * 2 + 8 * 8 * 9))
|
||||
5 * (5 + 9 * (8 * 4)) * (7 * 6 * 8) + 2 + 3
|
||||
9 * 5
|
||||
6 + 6 + 9 + 4 + (4 + 9 + (3 + 2) * 2 * 6)
|
||||
(6 * 4 * 7 * 3 + 7) + 5 * (8 * 4 * (4 + 8 * 4) * 9 * 2 * 3) + 9 + 9 * 2
|
||||
(8 * 4) + (5 * 4 + 4 * 4) * ((5 * 4 * 3 + 8) * 8 * 3 * 3 * 9 * 5) + 3 * (4 * 9 * 6)
|
||||
8 * 4 * 6 + 2
|
||||
(7 + 2 + 3 * (8 + 3)) + 2 + 9 * (2 * 2 * (4 + 6 * 6 + 3 * 2 * 8) + 7 + 7) + 8 * 7
|
||||
3 * (6 + 4 * (5 * 4 + 5 * 4 * 5 * 2) * (5 * 4) + 9) + 4 + 6 + 4 * (5 + 6 * (2 * 7 + 6 + 2))
|
||||
9 + 8 + (3 * 6 + 7 + 8 * 9 * 4) * 8 * 9 * ((3 * 8 * 8 + 9 * 7 + 6) * 4 * 2 + (2 * 2 + 4 * 3) + (6 * 6 + 9 + 9 + 8) * (8 + 8 * 4))
|
||||
5 + (7 * 6 * 6 * (3 * 2 * 3 * 6 * 7 + 7) * 7)
|
||||
9 * 9 + 3 * ((7 * 6 + 5 + 4) * 8 * (7 * 8 + 5 * 8) * (4 + 4 + 8 * 8 * 7 * 7) + 3 + 8) * 6
|
||||
2 * ((4 + 2 * 9) * (8 * 3) * 7 + 9) * 6 * 5
|
||||
(3 * (7 + 7 * 2 + 9) + (3 + 8) * 5 * (2 * 4 + 5 + 6 * 9) * 2) + 5 + 8
|
||||
2 * (2 + 8 + 5 * 6) * 2 + 7
|
||||
7 + (6 + 3 + 5 * 6 + 7 * 2)
|
||||
4 + 2 * 3 * (6 + 3 + 5 * 4 + 2) * 9 * (8 * 7 * 5 * 8)
|
||||
5 + (4 * 2 * 4 + 3 + 7 + 5) * 7 + 7
|
||||
8 + 2 + 4 + 7 + 2
|
||||
9 + 4 * 7
|
||||
6 + 5 * (5 + 9 * 7 * 6 * 5 + 7) * (7 + (6 * 9 * 7 + 5 + 6 * 4) + (9 * 9 + 7 * 9)) * 4 + 5
|
||||
7 * 7 * (8 * 3 * 3 + 9) + ((2 + 2) + 7 * 7 + 7 + 7 + 3) * 8
|
||||
2 + (4 * 7 * (7 * 5 * 4 + 5 + 5 + 5) + 7) + 5 + (6 + (9 + 6 + 6 * 3 + 3 + 5) * 2 * 9 + (3 * 7 * 5 + 5)) * (5 * 4 * 2 * 6) * ((7 + 4 + 7 * 2) * 7 + (5 + 7 * 7 * 3 * 4) * 8)
|
||||
((3 + 4) * (9 + 5 * 7 + 5 * 7 + 5) * 4) * 6 * 4 + 9
|
||||
(6 * 9 + 5 + (6 + 8 * 8 * 6 + 6) + 6 + 7) + 7 + 5 * 2 + 2
|
||||
8 * (7 * 4 + 5) * 8
|
||||
5 + 8 + 9 + (6 + 8) + (6 + 4 * 4 * 4 * 5 + 5) * 5
|
||||
4 * 6 * 9 + 8 * (2 * 5 + 2 * (6 * 2 + 4 + 7 * 6 * 2)) * ((7 * 3 + 6) + (2 * 9 * 6 * 8 * 5 + 6) + (8 + 8 * 2 * 9 * 7 + 2) + 8 * 7)
|
||||
4 + 4 + 7 + 5 + 2
|
||||
3 + (8 * 2 * 4) * 8 * (2 + (8 * 5 + 3 * 4 + 4)) * (2 * (5 * 6))
|
||||
7 + 8 + 7 + (2 * 7 * 7 * (9 * 8) * 5)
|
||||
5 + 7 + 9 + 4 * (8 + 6 + 9 * (3 + 9 * 3 + 5 * 3) * 5 + 4) + (8 * (3 * 8))
|
||||
4 * 2 * ((8 + 8 + 4) * (9 + 9) * 5 * 4 + 5 * 9) * 2
|
||||
4 + 3 * 4 * 4 * 6
|
||||
4 + 8 * (5 + 2 * 3 * 8 * 6 * 9) + 6
|
||||
2 + 7 * (8 * 4 * 8 * 2 * 8 + 6) + 7 + 2
|
||||
5 + 3 + ((8 + 3) * 6 + (6 * 2 * 9 * 8 * 8 + 3) + 8 * 2 * 7) + 9 + 3 * ((4 + 9 * 5) * 3 * 4 * 3 * 2 + 9)
|
||||
7 + (8 + (5 + 6 * 4 * 5 + 4 + 2) + (4 * 2) + 3 * 5 + 9) * 5 + 6 * 6
|
||||
7 + 3 * (9 + 3 + 5 + 2) * 9
|
||||
8 * 3 + (9 * (4 * 3 * 4) * 6 + 4 * 7) + 5 * 5 + (4 + 5 * (3 * 4 * 8 + 2 + 3 + 2))
|
||||
(7 * 2 * (7 + 8 * 4 + 7)) * 9 + 5 + 9
|
||||
4 * 7 * 5 + 3 * 5
|
||||
9 * 4 * 4 + 2 * (7 * (7 + 8 * 6 * 9 * 4) + (8 + 2) * 3 + 9 + 5) + 2
|
||||
8 * 7 * 5 + ((5 + 7 + 8 + 4 + 7) + 7 * (9 * 2 + 2) + 9) + 6
|
||||
5 + 4 + (4 + 5 * 5 * 2)
|
||||
6 + 7 * 2
|
||||
9 + (5 + 6 * (3 + 3 * 4 + 3 * 4) * 4 * (8 * 2 + 6 + 6)) * 3 * 3 + 3 + 4
|
||||
((3 + 6) * 8 * 5 + 8 * 2 * 9) * (4 * 7 + (5 + 6 + 5 + 9 + 4)) + ((5 + 6 * 3 + 2 * 8 * 3) + 2 + 9 + 7) + ((6 + 5 * 5 * 2 + 7) * 9) * 7
|
||||
2 + 3 + 6 * (4 + 2 + 8) * ((2 * 8 + 4) + (2 + 3 + 3 + 8))
|
||||
(6 * 2) + 5 * 9 + 2 + ((5 * 7 + 4) * (7 + 4 + 4) * 2 * 7 + (5 + 7 * 2 + 3 + 5) + (6 + 4 + 2)) * 6
|
||||
4 + (5 * 3 * (6 * 7 * 8 * 4 + 5) * 3) + 2 * 7
|
||||
((4 + 7 * 9) * 3) + 9 * (6 + 3 + 8 + 2)
|
||||
4 * 2 + 2 * (9 + 9 * 3 + (9 + 7 * 3 * 3 + 4 + 7) + (8 + 5) + 8) + 8
|
||||
5 + (8 * 4 + 9) * 2 + 2 * 2 * 5
|
||||
(5 * 8 * 3 * 5 + (3 * 2 + 9 * 5) * 6) + 5 + 8 + 3 * 2
|
||||
8 * (2 * (4 + 6 * 3 * 6 * 2 * 2) * (7 + 4 * 9 + 3) + 9)
|
||||
6 * ((4 * 3) * 6 * (5 * 5 * 6 + 6) + (3 * 2) * 5 * 3)
|
||||
8 + (3 * 6 + 4 + 9) * 2
|
||||
2 * 8 * 4 * ((3 * 3 + 9 * 7 * 5) * 7) + 2
|
||||
(6 + 9 * 2 + 4) * 4 * 4 * 3 + 6 * 8
|
||||
2 * 7 * 7 + (3 * 8 + 5) + 5 + 7
|
||||
3 + (9 * 2 + 6 + (4 + 8 + 9 * 5) * 4) * 8
|
||||
9 * (7 + 8)
|
||||
8 * (7 + 8 + (5 + 5 * 8) + 7 + 3) + 6
|
||||
(4 + 2 + 7 * 5) * 9 * 3 + 8 + 7 + ((9 * 4 * 4) + 4 * (6 * 3 * 3 * 6))
|
||||
(2 * 8 + (8 + 4 * 9 * 6 * 2) * 7) * 9 * 6 * 5
|
||||
9 + 7 + (4 + 5 + 6 + 3) + 3 * 6
|
||||
(8 * 2) + 4 + 3 + 7 * 2
|
||||
(4 * 4 + 4) + 8
|
||||
6 + 4 + 8
|
||||
3 * (5 + (2 * 6 * 5 + 7 * 6) + 7 * 2 * 8 * 8) + 8 * 4
|
||||
8 * 7 * (3 * 4 + 6 + 2 * 9 + 9) * 3 + (3 + 5)
|
@ -0,0 +1,61 @@
|
||||
import re
|
||||
|
||||
example1 = '1 + 2 * 3 + 4 * 5 + 6'
|
||||
example2 = '1 + (2 * 3) + (4 * (5 + 6))'
|
||||
example3 = '2 * 3 + (4 * 5)'
|
||||
example4 = '5 + (8 * 3 + 9 + 3 * 4 * 3)'
|
||||
example5 = '5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))'
|
||||
example6 = '((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2'
|
||||
|
||||
with open('input') as f:
|
||||
expressions = f.readlines()
|
||||
|
||||
|
||||
def calc(op, a, b):
|
||||
if op == '+':
|
||||
return a + b
|
||||
elif op == '*':
|
||||
return a * b
|
||||
else:
|
||||
raise Exception(f'Operator "{op}" not known')
|
||||
|
||||
|
||||
def solve(line):
|
||||
num_stack = [0]
|
||||
op_stack = ['+']
|
||||
|
||||
for char in line:
|
||||
if char in [' ', '\n']:
|
||||
continue
|
||||
|
||||
if char == '(':
|
||||
num_stack.append(0)
|
||||
op_stack.append('+')
|
||||
elif char == ')':
|
||||
op = op_stack.pop()
|
||||
a = num_stack.pop()
|
||||
b = num_stack.pop()
|
||||
num_stack.append(calc(op, a, b))
|
||||
elif char in ['+', '*']:
|
||||
op_stack.append(char)
|
||||
elif re.match('[0-9]', char):
|
||||
num = int(char)
|
||||
num_stack.append(int(char))
|
||||
op = op_stack.pop()
|
||||
a = num_stack.pop()
|
||||
b = num_stack.pop()
|
||||
num_stack.append(calc(op, a, b))
|
||||
|
||||
# print(num_stack, op_stack)
|
||||
return num_stack.pop()
|
||||
|
||||
|
||||
print(example1, '=', solve(example1))
|
||||
print(example2, '=', solve(example2))
|
||||
print(example3, '=', solve(example3))
|
||||
print(example4, '=', solve(example4))
|
||||
print(example5, '=', solve(example5))
|
||||
print(example6, '=', solve(example6))
|
||||
|
||||
print('Solution')
|
||||
print(sum(map(solve, expressions)))
|
@ -0,0 +1,112 @@
|
||||
import re
|
||||
|
||||
example1 = '1 + 2 * 3 + 4 * 5 + 6'
|
||||
example2 = '1 + (2 * 3) + (4 * (5 + 6))'
|
||||
example3 = '2 * 3 + (4 * 5)'
|
||||
example4 = '5 + (8 * 3 + 9 + 3 * 4 * 3)'
|
||||
example5 = '5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))'
|
||||
example6 = '((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2'
|
||||
|
||||
with open('input') as f:
|
||||
expressions = f.readlines()
|
||||
|
||||
|
||||
def calc(op, a, b):
|
||||
if op == '+':
|
||||
return a + b
|
||||
elif op == '*':
|
||||
return a * b
|
||||
else:
|
||||
raise Exception(f'Operator "{op}" not known')
|
||||
|
||||
|
||||
class Node:
|
||||
leaf_value = None
|
||||
|
||||
def __init__(self, expression):
|
||||
# print('Processing', expression)
|
||||
while expression[0] == '(':
|
||||
level = 0
|
||||
split = None
|
||||
closing_bracket = None
|
||||
for idx, char in enumerate(expression):
|
||||
if char == '(':
|
||||
level += 1
|
||||
elif char == ')':
|
||||
level -= 1
|
||||
if level == 0 and closing_bracket is None:
|
||||
closing_bracket = idx
|
||||
|
||||
if level == 0 and char == '*' and split is None:
|
||||
split = idx
|
||||
# print(f'Found split at {i} within {expression}')
|
||||
if closing_bracket + 1 == len(expression):
|
||||
# print('stipping unneeded parens')
|
||||
expression = expression[1:-1]
|
||||
else:
|
||||
if split is not None:
|
||||
# self.split_at(expression, split)
|
||||
self.split_at(expression, split)
|
||||
else:
|
||||
self.split_at(expression, closing_bracket + 2)
|
||||
return
|
||||
if '(' in expression:
|
||||
level = 0
|
||||
split = None
|
||||
for idx, char in enumerate(expression):
|
||||
if char == '(':
|
||||
level += 1
|
||||
elif char == ')':
|
||||
level -= 1
|
||||
|
||||
if level == 0 and char == '*' and split is None:
|
||||
split = idx
|
||||
if split is not None:
|
||||
self.split_at(expression, split)
|
||||
else:
|
||||
self.split_at(expression, expression.find('+'))
|
||||
elif '*' in expression:
|
||||
self.split_at(expression, expression.find('*'))
|
||||
elif '+' in expression:
|
||||
self.split_at(expression, expression.find('+'))
|
||||
else:
|
||||
self.leaf_value = int(expression.strip())
|
||||
|
||||
def split_at(self, expression, idx):
|
||||
left = expression[:idx].strip()
|
||||
right = expression[idx + 1:].strip()
|
||||
op = expression[idx]
|
||||
# print(f'Splitting "{left}" "{op}" "{right}"')
|
||||
self.left = Node(left)
|
||||
self.right = Node(right)
|
||||
self.op = op
|
||||
|
||||
@ property
|
||||
def value(self):
|
||||
if self.leaf_value is not None:
|
||||
return self.leaf_value
|
||||
return calc(self.op, self.left.value, self.right.value)
|
||||
|
||||
|
||||
def solve(line):
|
||||
return Node(line.strip()).value
|
||||
|
||||
|
||||
print(example1, '=', solve(example1))
|
||||
print(example2, '=', solve(example2))
|
||||
print(example3, '=', solve(example3))
|
||||
print(example4, '=', solve(example4))
|
||||
print(example5, '=', solve(example5))
|
||||
print(example6, '=', solve(example6))
|
||||
|
||||
# should be 16530240
|
||||
example7 = '3 + (8 * 2 * 4) * 8 * (2 + (8 * 5 + 3 * 4 + 4)) * (2 * (5 * 6))'
|
||||
print(example7, '=', solve(example7), 'should be', '16530240')
|
||||
|
||||
|
||||
print('Solution')
|
||||
# for expr in expressions:
|
||||
# print(expr.strip(), '=', solve(expr))
|
||||
|
||||
print(sum(map(solve, expressions)))
|
||||
|
Loading…
Reference in New Issue