mirror of
https://github.com/Noettore/AdventOfCode.git
synced 2025-10-15 03:36:39 +02:00
Restyled README and file structure
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
35
2020/README.md
Normal file
35
2020/README.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Advent of Code
|
||||
|
||||
[](../LICENSE)
|
||||
[](https://github.com/Noettore/AdventOfCode/commit/master)
|
||||
[](https://github.com/Noettore/AdventOfCode/actions?query=workflow%3APython)
|
||||
|
||||
## Year [2020](https://adventofcode.com/2020/) - Python
|
||||
|
||||
| Day | Execution time with CPython 3.8.6 | Execution time with PyPy 7.3.3 Python 3.6.12 |
|
||||
| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- |
|
||||
| [Day 1](https://adventofcode.com/2020/day/1) | [0.040ms](./2020-python/solutions/day_01.py) | [---](./2020-python/solutions/day_01.py) |
|
||||
| [Day 2](https://adventofcode.com/2020/day/2) | [0.702ms](./2020-python/solutions/day_02.py) | [---](./2020-python/solutions/day_02.py) |
|
||||
| [Day 3](https://adventofcode.com/2020/day/3) | [0.343ms](./2020-python/solutions/day_03.py) | [---](./2020-python/solutions/day_03.py) |
|
||||
| [Day 4](https://adventofcode.com/2020/day/4) | [3.036ms](./2020-python/solutions/day_04.py) | [---](./2020-python/solutions/day_04.py) |
|
||||
| [Day 5](https://adventofcode.com/2020/day/5) | [5.993ms](./2020-python/solutions/day_05.py) | [---](./2020-python/solutions/day_05.py) |
|
||||
| [Day 6](https://adventofcode.com/2020/day/6) | [2.587ms](./2020-python/solutions/day_06.py) | [2.275ms](./2020-python/solutions/day_06.py) |
|
||||
| [Day 7](https://adventofcode.com/2020/day/7) | [1.689ms](./2020-python/solutions/day_07.py) | [1.565ms](./2020-python/solutions/day_07.py) |
|
||||
| [Day 8](https://adventofcode.com/2020/day/8) | [6.313ms](./2020-python/solutions/day_08.py) | [794.417µs](./2020-python/solutions/day_08.py) |
|
||||
| [Day 9](https://adventofcode.com/2020/day/9) | [7.220ms](./2020-python/solutions/day_09.py) | [4.783ms](./2020-python/solutions/day_09.py) |
|
||||
| [Day 10](https://adventofcode.com/2020/day/10) | [139.110µs](./2020-python/solutions/day_10.py) | [98.594µs](./2020-python/solutions/day_10.py) |
|
||||
| [Day 11](https://adventofcode.com/2020/day/11) | [2.879s](./2020-python/solutions/day_11.py) | [419.447ms](./2020-python/solutions/day_11.py) |
|
||||
| [Day 12](https://adventofcode.com/2020/day/12) | [746.181µs](./2020-python/solutions/day_12.py) | [211.216µs](./2020-python/solutions/day_12.py) |
|
||||
| [Day 13](https://adventofcode.com/2020/day/13) | [122.107µs](./2020-python/solutions/day_13.py) | [100.671µs](./2020-python/solutions/day_13.py) |
|
||||
| [Day 14](https://adventofcode.com/2020/day/14) | [64.058ms](./2020-python/solutions/day_14.py) | [56.398ms](./2020-python/solutions/day_14.py) |
|
||||
| [Day 15](https://adventofcode.com/2020/day/15) | [4.463s](./2020-python/solutions/day_15.py) | [718.712ms](./2020-python/solutions/day_15.py) |
|
||||
| [Day 16](https://adventofcode.com/2020/day/16) | [11.108ms](./2020-python/solutions/day_16.py) | [2.903ms](./2020-python/solutions/day_16.py) |
|
||||
| [Day 17](https://adventofcode.com/2020/day/17) | [743.804ms](./2020-python/solutions/day_17.py) | [836.255ms](./2020-python/solutions/day_17.py) |
|
||||
| [Day 18](https://adventofcode.com/2020/day/18) | [10.263ms](./2020-python/solutions/day_18.py) | [2.053ms](./2020-python/solutions/day_18.py) |
|
||||
| [Day 19](https://adventofcode.com/2020/day/19) | [145.980ms](./2020-python/solutions/day_19.py) | [259.030ms](./2020-python/solutions/day_19.py) |
|
||||
| [Day 20](https://adventofcode.com/2020/day/19) | [513.955ms](./2020-python/solutions/day_20.py) | [316.973ms](./2020-python/solutions/day_20.py) |
|
||||
| [Day 21](https://adventofcode.com/2020/day/21) | [2.177ms](./2020-python/solutions/day_21.py) | [1.578ms](./2020-python/solutions/day_21.py) |
|
||||
| [Day 22](https://adventofcode.com/2020/day/22) | [1.516s](./2020-python/solutions/day_22.py) | [1.353s](./2020-python/solutions/day_22.py) |
|
||||
| [Day 23](https://adventofcode.com/2020/day/23) | [14.754s](./2020-python/solutions/day_23.py) | [3.572s](./2020-python/solutions/day_23.py) |
|
||||
| [Day 24](https://adventofcode.com/2020/day/24) | [753.985ms](./2020-python/solutions/day_24.py) | [357.455ms](./2020-python/solutions/day_24.py) |
|
||||
| [Day 25](https://adventofcode.com/2020/day/25) | [144.685ms](./2020-python/solutions/day_25.py) | [4.184ms](./2020-python/solutions/day_25.py) |
|
200
2020/inputs/day_01
Normal file
200
2020/inputs/day_01
Normal file
@@ -0,0 +1,200 @@
|
||||
1837
|
||||
1585
|
||||
1894
|
||||
1715
|
||||
1947
|
||||
1603
|
||||
1746
|
||||
1911
|
||||
1939
|
||||
1791
|
||||
1800
|
||||
1479
|
||||
1138
|
||||
1810
|
||||
1931
|
||||
1833
|
||||
1470
|
||||
1882
|
||||
1725
|
||||
1496
|
||||
1890
|
||||
1862
|
||||
1990
|
||||
1958
|
||||
1997
|
||||
1844
|
||||
1524
|
||||
541
|
||||
2001
|
||||
1591
|
||||
1687
|
||||
1941
|
||||
1940
|
||||
1561
|
||||
1813
|
||||
1654
|
||||
1500
|
||||
1575
|
||||
1826
|
||||
2006
|
||||
679
|
||||
1660
|
||||
1679
|
||||
1631
|
||||
2008
|
||||
575
|
||||
1583
|
||||
1883
|
||||
1904
|
||||
1436
|
||||
1650
|
||||
1532
|
||||
1907
|
||||
1803
|
||||
1693
|
||||
1700
|
||||
359
|
||||
1516
|
||||
1625
|
||||
1908
|
||||
1994
|
||||
1910
|
||||
1644
|
||||
1706
|
||||
1781
|
||||
1639
|
||||
1662
|
||||
1712
|
||||
1796
|
||||
1915
|
||||
1550
|
||||
1721
|
||||
1697
|
||||
1917
|
||||
1665
|
||||
1646
|
||||
1968
|
||||
1881
|
||||
1893
|
||||
1468
|
||||
1678
|
||||
1774
|
||||
285
|
||||
1754
|
||||
1856
|
||||
1677
|
||||
1823
|
||||
1802
|
||||
1681
|
||||
1587
|
||||
1767
|
||||
1711
|
||||
1900
|
||||
1983
|
||||
1787
|
||||
1996
|
||||
1726
|
||||
1982
|
||||
1971
|
||||
1553
|
||||
1542
|
||||
1863
|
||||
2002
|
||||
1831
|
||||
1891
|
||||
1555
|
||||
2000
|
||||
1847
|
||||
1783
|
||||
1873
|
||||
1761
|
||||
1742
|
||||
1534
|
||||
1993
|
||||
1898
|
||||
1973
|
||||
1974
|
||||
1597
|
||||
1540
|
||||
1581
|
||||
1864
|
||||
1452
|
||||
1637
|
||||
1649
|
||||
1886
|
||||
1965
|
||||
1460
|
||||
1664
|
||||
1701
|
||||
1647
|
||||
1812
|
||||
1937
|
||||
1902
|
||||
2004
|
||||
1991
|
||||
1718
|
||||
1887
|
||||
1606
|
||||
1748
|
||||
1737
|
||||
1608
|
||||
1641
|
||||
1710
|
||||
1724
|
||||
705
|
||||
1985
|
||||
1571
|
||||
1805
|
||||
131
|
||||
1788
|
||||
1707
|
||||
1513
|
||||
1615
|
||||
1897
|
||||
1476
|
||||
1927
|
||||
1745
|
||||
1926
|
||||
1839
|
||||
1807
|
||||
1955
|
||||
1692
|
||||
1645
|
||||
1699
|
||||
1471
|
||||
1604
|
||||
1830
|
||||
1622
|
||||
1972
|
||||
1866
|
||||
1814
|
||||
1816
|
||||
1855
|
||||
1820
|
||||
1034
|
||||
1673
|
||||
1704
|
||||
1969
|
||||
1580
|
||||
1980
|
||||
1739
|
||||
1896
|
||||
434
|
||||
497
|
||||
1851
|
||||
1933
|
||||
458
|
||||
1521
|
||||
1551
|
||||
1762
|
||||
2010
|
||||
1614
|
||||
1840
|
||||
1747
|
||||
1875
|
||||
1836
|
||||
1895
|
||||
1518
|
||||
1825
|
||||
1987
|
1000
2020/inputs/day_02
Normal file
1000
2020/inputs/day_02
Normal file
File diff suppressed because it is too large
Load Diff
323
2020/inputs/day_03
Normal file
323
2020/inputs/day_03
Normal file
@@ -0,0 +1,323 @@
|
||||
...........#..#.#.###....#.....
|
||||
...#..#...........#.#...#......
|
||||
#.....#..#........#...#..##....
|
||||
..#...##.#.....#.............#.
|
||||
#.#..#......#.....#....#.......
|
||||
.....#......#..#....#.....#....
|
||||
.......#.#..............#......
|
||||
.....#...#..........##...#.....
|
||||
...#....#.#...#.#........#...#.
|
||||
..#.........###.......##...##..
|
||||
.#....#...........#........#..#
|
||||
..#.............##.............
|
||||
..#.##.#....#................#.
|
||||
.....##.#.......#....#...#.....
|
||||
......#.#....##................
|
||||
..#..........###..#..#.#..#....
|
||||
....#..............#....##..#.#
|
||||
.#.........#.#....#.#.#....#...
|
||||
..#.....#......##.#....#.......
|
||||
..#.#....#..#.#...##....###....
|
||||
...#......##...#........#.#..#.
|
||||
.##.#.......##....#............
|
||||
...##..#.#............#...#.#..
|
||||
.##...##.#..#..................
|
||||
..#......##......#......##.....
|
||||
.....##...#..#...#.........#...
|
||||
.##.#.....#..#..#.##....##....#
|
||||
..#.#......#.......##..........
|
||||
......................#......##
|
||||
##.#...#.................#.#.#.
|
||||
......#.#..........#.....##.#..
|
||||
#.#......#.....#...........#...
|
||||
.....#...#.......#..#..#.#...#.
|
||||
...........#......#.#...#......
|
||||
....##...##...........#......#.
|
||||
.........#.##..................
|
||||
......#...#....#......##.##...#
|
||||
......#...#.#########......#...
|
||||
.......#.#...#.......#..#......
|
||||
............#...#...#.###...##.
|
||||
...........#..........#...#....
|
||||
...#..#.#................#.#..#
|
||||
..#....#.....#.............#.#.
|
||||
....##......#........#....#....
|
||||
........##...............#....#
|
||||
........#..#...#..............#
|
||||
...#....#.#...#..#...#....#.#.#
|
||||
.........#.......#....##.......
|
||||
#.##..............#.#........##
|
||||
......................###......
|
||||
.........#....##..##....#.#.#..
|
||||
.#...##.#.#...#....##..#.....#.
|
||||
....................#.#......#.
|
||||
.#..#.......................#..
|
||||
..#..#.............#..#....#...
|
||||
...#...#..#...#...#.#..#.##....
|
||||
........#....#...#....#........
|
||||
.#.....#........#.........#...#
|
||||
...#......#..#..#..####..#.....
|
||||
#....#..............#.##.......
|
||||
.#....#.............##...#.....
|
||||
....#...#.##........##......#..
|
||||
##....#...#.......#..#........#
|
||||
....##........................#
|
||||
..................#..#.........
|
||||
..#....#........#..#.......#...
|
||||
#...#..#....#...##...........#.
|
||||
.........#..#..#.#.##..........
|
||||
....#.#..#.....#..#.#.#.#..#.##
|
||||
##................#.##.....#...
|
||||
.#.....###..#..#..#.....#....##
|
||||
...#...........#..........####.
|
||||
.#.....#....#......#.##..#.#...
|
||||
..#...##....#................#.
|
||||
........#.......#......#.#.....
|
||||
....#.#.#.#....#...#......#..#.
|
||||
...........#......#..#.........
|
||||
###...##......##.#..#....##....
|
||||
##....##.........#..#....###...
|
||||
#.#.....#....#......#...#..##..
|
||||
#....##.#..............#.##....
|
||||
.#........#.#.........#...#....
|
||||
......................#......#.
|
||||
........#..#..##.....#..#.#....
|
||||
..#...###.................#..#.
|
||||
...#...#............#..........
|
||||
.##.......#..#.........#....#..
|
||||
.#..............#....#....##...
|
||||
...............##..#.#.......##
|
||||
.#.....#....#...#..#.......#..#
|
||||
#..#.............#....#......#.
|
||||
.....#.#......#.........###..#.
|
||||
.#...#.#...............#....#..
|
||||
#......#.............#.........
|
||||
.#.##.#.####...#..#.##..#.....#
|
||||
.....#......#..#...#.......#...
|
||||
#........###...#.....#..#.....#
|
||||
....#.#.....#...#..........#...
|
||||
...#.#.......#.#......#..#.##..
|
||||
..#..........#.#..#.......#.#..
|
||||
#...#.#..............#...###.#.
|
||||
...#..#...#............###.....
|
||||
..#..#...#.#............#..#...
|
||||
.###.#.....................#..#
|
||||
....#....#..#.....##.##........
|
||||
#....#....#.#..#.........#.....
|
||||
.#.....##....#............##..#
|
||||
#....#.#...#...#..#.#......#...
|
||||
#.....##.....##.....##.#...##..
|
||||
...##...#..#..####.#........#..
|
||||
.........#...#......##..##..#..
|
||||
..#.....###.#..#..####.#.......
|
||||
.......#......#...#..##....#...
|
||||
.#.....#.#.#..#....#...#..##...
|
||||
..........#.#...#...#.#..#.....
|
||||
....#.....#........#.....##..#.
|
||||
..#.#.##.........#...##.....##.
|
||||
.........#.##....#............#
|
||||
............##.....#.......#.#.
|
||||
......#.....#...#..#..###......
|
||||
##.....#.......#...##.#....#...
|
||||
...........##......#..##...#.#.
|
||||
..#.#.#.#...#.......#....#...#.
|
||||
#.............#.....#.#...###..
|
||||
##....#.......#.....#..##.#....
|
||||
...#.......#....#.........##...
|
||||
......#.......#......##.##.....
|
||||
..#......#...#.#........#......
|
||||
....#.#....#.#.##......#.....#.
|
||||
#......#.........#..#....#.....
|
||||
........#..#....##.....#.......
|
||||
#......##....#.##....#......#..
|
||||
..#.......#............##.....#
|
||||
...........#...#...........#...
|
||||
#.......#...#....#....#...#.#.#
|
||||
..###..#........#........#.....
|
||||
..#..###...........#.#......#..
|
||||
.#...........#......#..........
|
||||
.#.......#.....#.......#.......
|
||||
..#......##.#............#....#
|
||||
#..........#.....#.#..#........
|
||||
.....#...##.##.......#......#..
|
||||
..........#.....#........#.#.#.
|
||||
....#......#.....#......#.#....
|
||||
.........#.#.#..#...##....#...#
|
||||
.........#.......#...##...#.#..
|
||||
.##........#...............#...
|
||||
.......#....#...........##.....
|
||||
.........###......#.........#.#
|
||||
......#.......#...#..........#.
|
||||
...#.#..........##......#...#..
|
||||
#.......#.#..........#.........
|
||||
................#..#......#..##
|
||||
.....#...#....#.#.....#........
|
||||
#.....#....#...........#....#..
|
||||
#....#.#..#...##....#...##.#...
|
||||
...#.....#......#.#....#..#..#.
|
||||
..#................#...#.#..##.
|
||||
..........#..............#..#.#
|
||||
.....##.....#..#.###...........
|
||||
....#.#......#.#...........#...
|
||||
.#....#.#.........##.#....#....
|
||||
.#.#........#........###....#..
|
||||
##.#................#...#..#...
|
||||
.......#......##..#.....#..#.#.
|
||||
...#............#......###...##
|
||||
#.#...........#.........#......
|
||||
.....#.#.#.................#...
|
||||
....#..............#...#.#.....
|
||||
...#.#.....##..#...............
|
||||
.#..##...#....##.....###..#....
|
||||
...............#...#...#.#.###.
|
||||
.###....#.....#...#.#......#...
|
||||
...#..#.....#.......#..##.#....
|
||||
...........#..#....##..#...#...
|
||||
...#...#..........#.......##.#.
|
||||
............#.#.......#........
|
||||
....#.........#.....#..........
|
||||
...#.###.##..#...##..####..#..#
|
||||
.#.#...#..#...................#
|
||||
.....#..#.....##..#............
|
||||
....#......#...##..#.##........
|
||||
...#...............#..#.....##.
|
||||
...#......#.........#.#..##....
|
||||
.#....#.##.......#......#......
|
||||
....#.......#....#..........#..
|
||||
#.#.#....###.#.#.............#.
|
||||
..##..###........#.#..#.#..#...
|
||||
......#.#............##.#...###
|
||||
.........#.#....#####.....##...
|
||||
............##......#.#..#.....
|
||||
...#.....#.....###....#........
|
||||
##..........####.##.#.#........
|
||||
....................##.....##.#
|
||||
#.#............#........#......
|
||||
....#...##.....#......#....#...
|
||||
...###.#..##..................#
|
||||
..###......#..............#.#.#
|
||||
.#...#...........#....#........
|
||||
....#............#..#..#.#.....
|
||||
...#.........#.#.........#.####
|
||||
..#...#...#...#...........#....
|
||||
...............#.#......##..#..
|
||||
#....#.#.......#.#..#......#..#
|
||||
........#.#....#..#...#..#...#.
|
||||
...#..#.......#...........#....
|
||||
...........#.......#...........
|
||||
.#......#................#.....
|
||||
....#.#.#...#......#..#...#....
|
||||
................#.#.#....#.....
|
||||
.........................##..#.
|
||||
.#...........#............##...
|
||||
#...............#.....##.#.#..#
|
||||
.........#.......###....#.....#
|
||||
....##...#...#.....#..#........
|
||||
........#.....#..#.#.#...#..#..
|
||||
......#.......#.#.........#.#..
|
||||
#......#............#...#....#.
|
||||
#..##...#..#................#..
|
||||
.##...#...#.....#.##.......#..#
|
||||
.......#.##........##..##......
|
||||
##.#..##...............#.....#.
|
||||
......#....#..##...#......###.#
|
||||
#........##..#....#.#......#...
|
||||
.#......##.#...#.#...#.........
|
||||
.#.#...#..#.............#......
|
||||
.##..........#..........#......
|
||||
.#.....#.....#..............#.#
|
||||
..#.........#..#.#.....#.#....#
|
||||
..#.##..............##...#..###
|
||||
....................#..........
|
||||
......###..#..#...........#....
|
||||
..#..........#.......#...#.....
|
||||
...#......#......#.............
|
||||
....##..............#.#.....#..
|
||||
........#.#......#..#........##
|
||||
.............#...#.#.........##
|
||||
...###...#..........##.......#.
|
||||
.#..........#...##..#.#.....#..
|
||||
##...#.........#...............
|
||||
......#....#....#.....#.....#..
|
||||
..........#....#...#...#..#...#
|
||||
...##....#.#.#..#...##.........
|
||||
#......#.#...##.###...#....#...
|
||||
##.......##.#......##..#...#...
|
||||
......#.............#.##.....##
|
||||
#.......###....####.#...##....#
|
||||
..#...#..#.......#..........#..
|
||||
#.....#..#..#..#.##...###...#..
|
||||
.....##.#..#..#..#.#....#...#..
|
||||
..#...#..................##....
|
||||
....#.#........##..............
|
||||
#...#.......##...#...#.#.......
|
||||
..#...#........##....#.#.......
|
||||
..........###...###...#......#.
|
||||
#.....#..###...##...##..#..#..#
|
||||
..#.....##.....#.......##..#.#.
|
||||
........#........#.........#...
|
||||
.................#....#.......#
|
||||
.......#...#.....#...#.#.......
|
||||
....##...............#...##...#
|
||||
.##...#................#...#...
|
||||
.............#.................
|
||||
.#..#....#....#.#....#.........
|
||||
.#.#..#..........#.......#.....
|
||||
.....##.....##...#..#..........
|
||||
#...#.#.........#......#..#....
|
||||
........#....#...#....#.#.##...
|
||||
....#..#........#...#...#......
|
||||
.#..#.....#.#...#.........#....
|
||||
.#..#..#...........#..#....#...
|
||||
....###.............#..#.......
|
||||
#......#..#..##..........#.#...
|
||||
#..#..#.##..#...#.#.#..........
|
||||
....###......#.##.....#....#...
|
||||
.##..#...#......##.#...........
|
||||
..#..#.......#.....#.##....#.#.
|
||||
.......#.#.#........#....##....
|
||||
..##...#....#...............###
|
||||
#..##..#...........#.#....##...
|
||||
...##..#.....................#.
|
||||
###......#....#....###..#...##.
|
||||
.........##............#..#...#
|
||||
..#..........#...#.#.#......#.#
|
||||
.......#.....##..##......#.##..
|
||||
#..........#.....##.#..........
|
||||
#.......#.#...#...#....#.......
|
||||
#...#.....##.......#.#..#.#.#..
|
||||
.........#.#.#..#..#...#.###...
|
||||
.................##...#....#...
|
||||
###.......#..........##...#....
|
||||
#.#..#.........#....##.#.......
|
||||
......#.#.....#........#.......
|
||||
.......#.#........#......#.#..#
|
||||
..............#..#...##....#..#
|
||||
#...........#...##.....#..#.#..
|
||||
..#....#..#.#.#...#..#....#.#..
|
||||
...##.#.....#..#...##..#.....#.
|
||||
..#.#................#........#
|
||||
......#...#.............#......
|
||||
.##............#....#...#..#...
|
||||
....#...#...........#.......#..
|
||||
.###..#.......#.............#.#
|
||||
.#.#....#.#...........#.#......
|
||||
...#.........#.........#..#....
|
||||
...#..........#.#.....#.#......
|
||||
.....#........#....##......#...
|
||||
..#.#.#......#..#.#......#....#
|
||||
.#.#..#................#.#.....
|
||||
.#.#.........##...#.......#.#.#
|
||||
#..#.....#...#..#...........#..
|
||||
..##......####......#..#....###
|
||||
#.....###....#.#........#..#..#
|
||||
..##.#...#.#..##..........#..#.
|
||||
#.........#.#.............#...#
|
||||
...#.#...#...#.#.#....##.......
|
||||
##.##...#.....#...#...........#
|
||||
....#........#.#.....#.........
|
||||
.................##..#..##...##
|
||||
.....##....#...#...#.....#..#..
|
||||
....#...#........#............#
|
||||
..#...........##....#...#...##.
|
||||
.....#......#.........#..##.#..
|
1102
2020/inputs/day_04
Normal file
1102
2020/inputs/day_04
Normal file
File diff suppressed because it is too large
Load Diff
869
2020/inputs/day_05
Normal file
869
2020/inputs/day_05
Normal file
@@ -0,0 +1,869 @@
|
||||
FFFFBBBRLR
|
||||
BFBBFBFRRR
|
||||
FFBFBBFRRL
|
||||
BFBFBBFRRR
|
||||
BFBBFFFLLR
|
||||
FFFBFFFRRL
|
||||
BFFBFFFLLL
|
||||
BFFBFFFRRL
|
||||
FFBBFBBLRR
|
||||
BBFBBFBLLL
|
||||
BFFFFBFRRL
|
||||
BFFFBFBLLR
|
||||
BBFFBFFRLR
|
||||
BFBFBBFLLR
|
||||
BBFBFBFRLR
|
||||
BBFFBFFRRL
|
||||
FBFFFBFLRL
|
||||
BFFFBBFLLL
|
||||
FBFFFFFLLR
|
||||
FBFFFBFLRR
|
||||
BFBFBFBLLR
|
||||
BFBBBFFRLR
|
||||
FBBBFFFLRR
|
||||
BBBFFFFLRL
|
||||
FBBFFFFLRR
|
||||
BFFFBFBRLL
|
||||
BFBBBBBLLL
|
||||
BBFBFBFRLL
|
||||
FFBFBBBRRR
|
||||
FBBBFBBLRL
|
||||
BFFBFBFRRR
|
||||
BBFFBFBRLR
|
||||
FBFFFFBRRR
|
||||
FBFBBFBLRR
|
||||
BBBFFFBLLL
|
||||
FBFFBBFLLL
|
||||
FBFBBBBLRL
|
||||
BFBFBFBLRL
|
||||
BFBFFBFLLL
|
||||
FBBBBFFRRR
|
||||
BFBFFBBRLL
|
||||
FFBFBBFLRL
|
||||
BFBBBFFLLR
|
||||
FBFFBBBLRL
|
||||
BFBBBFFRRR
|
||||
FFFBFBBLLR
|
||||
FFBBFFBRLL
|
||||
BFFBBFBRLL
|
||||
BFBBFBBLRR
|
||||
BFFFFBBRRL
|
||||
FFFBBFFLLR
|
||||
FBFBBFFLRL
|
||||
FFFBFBBRLL
|
||||
FBBBFBFLRL
|
||||
BFFFBBBRLL
|
||||
FFBFBFBLLR
|
||||
FBFBFFBLRL
|
||||
FBBFBFBLLL
|
||||
FFFBBBBLLL
|
||||
BFFBBBFRRL
|
||||
BFFFBBBRRL
|
||||
BBFBBBBRLR
|
||||
FFBFBBBRRL
|
||||
FFFBFFFLRR
|
||||
BFFFBBBLRL
|
||||
BFBFFBBRRL
|
||||
BBBFFFBLRL
|
||||
FFFBFFBLLL
|
||||
BFBFFBBLLL
|
||||
BFBBFBBRLR
|
||||
FFFBFFBLLR
|
||||
BBFBFFFLRR
|
||||
BFFFFBFRRR
|
||||
BBFBBFBLRR
|
||||
BFFFFFBRRL
|
||||
FFFFBBBLRR
|
||||
BBBFFFBLLR
|
||||
BBFFFBFRRL
|
||||
BFFBFBBRLL
|
||||
BBFFBFFRLL
|
||||
FBBBFFBLRR
|
||||
FFBBFBBRLR
|
||||
FFBBBBFLLL
|
||||
BBFFBBBRRR
|
||||
FBBBFFBLLR
|
||||
BFBFFFBLLR
|
||||
BBFBFFFRRR
|
||||
BFBBBFFLRL
|
||||
FBBBFFBRLL
|
||||
BFBBFBFLLR
|
||||
FFFBBFBLLR
|
||||
BFBFBFBRRR
|
||||
BFBBFBFRRL
|
||||
FBFBFBBLLL
|
||||
FFBBBBFRRL
|
||||
BFBFBBBLLR
|
||||
FBFBFBFRLL
|
||||
BFFBFBBRLR
|
||||
FBBFFFBRRR
|
||||
BFFBBFFRRL
|
||||
BBFBFBFLRL
|
||||
FBFBBFBRRL
|
||||
FFBBFFBRRR
|
||||
FBBBFBBRLL
|
||||
FBBBBBBRLL
|
||||
BFFFFBBLLL
|
||||
BBBFFFBRLR
|
||||
BBFBBBBLRR
|
||||
FBFFBBBLRR
|
||||
BBFFFFBLRR
|
||||
BBFFBFBLLR
|
||||
BFFBBFFRLR
|
||||
FFFFBBBRLL
|
||||
BFFBBBBRRR
|
||||
BFBFFFFLLR
|
||||
FBBBBFBRLR
|
||||
FBBFBFFLRR
|
||||
FFBBBFFRLL
|
||||
BFFBBBBLRR
|
||||
FFBBBFBRRL
|
||||
BBFFBFFLRL
|
||||
BBFFFFFRLL
|
||||
BFFBFBFLRR
|
||||
FFBBBBFLLR
|
||||
FFBFFBFLLR
|
||||
BFFBFFFLRL
|
||||
BBFBBBFRLR
|
||||
FFBBFFBLLL
|
||||
FBBBFBFRLL
|
||||
BBFBBBFLLR
|
||||
FFFBBBFLRL
|
||||
FBFBBBBLLL
|
||||
FBFBFBFLRR
|
||||
BBFBBBFLRL
|
||||
FFBFBBBLLR
|
||||
FFBBBFBRLR
|
||||
FBFBFBBRLR
|
||||
FBFBFFBRLR
|
||||
BBFBFBFLRR
|
||||
FBBBBBBLLR
|
||||
BFFBFFBRLR
|
||||
BFBFFBFLRR
|
||||
FFFBBBFRLR
|
||||
FFFBBBBRLL
|
||||
BBBFFFBRRL
|
||||
BBFFFFBRLL
|
||||
BFBBBFFRRL
|
||||
FBFFBBBLLR
|
||||
BFBBBFBLLL
|
||||
FBFFBBFRLR
|
||||
FBBBBFFRRL
|
||||
BBFFBBFLRL
|
||||
BFFBBFBLRR
|
||||
BBFBFFFRRL
|
||||
FFBBFFFLLL
|
||||
FBBFFFBRLR
|
||||
FFBFBFFLLR
|
||||
FFBBBBFRRR
|
||||
FBBBFBBLLR
|
||||
BFBFFFFRRR
|
||||
FFBBFBBRLL
|
||||
FBFFFBFRLR
|
||||
FBFFBFFRRL
|
||||
BFFFFBBLRL
|
||||
BFBFBFFRRR
|
||||
BFFBBFFLRR
|
||||
BBFFFFFRRL
|
||||
FFFBBFBRRL
|
||||
BFFFBFBRLR
|
||||
BFBBBBFLLL
|
||||
BBFBBBFRRL
|
||||
FFFBBBFRLL
|
||||
FBFFFFBRLL
|
||||
BBFFBFBRRL
|
||||
BFFFBFFLRL
|
||||
FBBFBBFRRL
|
||||
BFBFFBBRLR
|
||||
FFFBBFFLRL
|
||||
BFBFFBBLRR
|
||||
BFBFFFBRLR
|
||||
FBBFBBBLRR
|
||||
BBBFFFBRRR
|
||||
FBBBFFBRRL
|
||||
FBFFBFBRLR
|
||||
BFFFFFFLLL
|
||||
BFFBFFFRLR
|
||||
FFBFBFFLLL
|
||||
BFBBBBBRLR
|
||||
BFBBFFFLLL
|
||||
BFFBBBBRLL
|
||||
BFBFFFBRRL
|
||||
BBFFBBBLRL
|
||||
FBFFBBFLRR
|
||||
FBBBFFFLRL
|
||||
BFBFFFBRLL
|
||||
FBFFFBFRLL
|
||||
BFFFBFFRLR
|
||||
FFFBBBFLLR
|
||||
BBFFBFBLLL
|
||||
FBBFFBBRLR
|
||||
BBFFFFBRRR
|
||||
FBBBBFFLRR
|
||||
BFFBFBFRLR
|
||||
BBFBFBBLRR
|
||||
BFBBFFBRLR
|
||||
FBBBFFBLRL
|
||||
FBBFFFBRLL
|
||||
BFBFBBFLRR
|
||||
FBBBBFBLRR
|
||||
FBFBBFBRLR
|
||||
FBFFFBBRRR
|
||||
FBBFBFFLLR
|
||||
FBFFBFBLRR
|
||||
BFFBFBBRRL
|
||||
FBBFFFBLLR
|
||||
FBFFBBBRRR
|
||||
BFFBBBBLLR
|
||||
BBFFBFFLLL
|
||||
BBFBBBFRRR
|
||||
BBFFBBBLLL
|
||||
BBFBBFFRRR
|
||||
BFBFBBFRRL
|
||||
BFFFBFBRRL
|
||||
BBFBFBBLLL
|
||||
BFBBBFBRLL
|
||||
BBFFFBBRRR
|
||||
BFFFBBFRLL
|
||||
BFBBFBBRRR
|
||||
BFFFBBFRRR
|
||||
BFFBFFBLLR
|
||||
BBFBBFBLRL
|
||||
BFFFFFBLRR
|
||||
FFBFBFBLRR
|
||||
BFBBBFBLRR
|
||||
FBFFBFFRLR
|
||||
BFBBBFFLRR
|
||||
FFFBFBFLLL
|
||||
FFBBBBFRLL
|
||||
FFBBBFFLLR
|
||||
FFBBBBBLRL
|
||||
FBFBFFBRLL
|
||||
FFBBBFBRLL
|
||||
FBFFBBBRLL
|
||||
FFFBBFBLRR
|
||||
BBBFFFBLRR
|
||||
BFFBFFBLRL
|
||||
FBBFFFFRLL
|
||||
FBFFBFBRLL
|
||||
BBFFFFBRLR
|
||||
FFBBBFBLRL
|
||||
FBFFFFBLLR
|
||||
FBBBFBBLLL
|
||||
FBBFBFFRRR
|
||||
BBFFFBFRLR
|
||||
FBFFFBFLLL
|
||||
BBFBFFFLLR
|
||||
BBFFBBBRLL
|
||||
BFFBFFFRLL
|
||||
FBFBBFFRLR
|
||||
BBFBBBFLLL
|
||||
FFBFFFFRRR
|
||||
FBBFFBFLLL
|
||||
BFFFBFFLRR
|
||||
FFFBBFBRRR
|
||||
FFBBBBBLRR
|
||||
FBFBFBFRRL
|
||||
BFBBFBFRLL
|
||||
BBFBFBBLLR
|
||||
FBFFFFFRRL
|
||||
FFBBFBBRRL
|
||||
BFBBFFBLLL
|
||||
BBFBFBFRRR
|
||||
FFBBBBFLRL
|
||||
FFBBFBBLLL
|
||||
FFFBFBBRRL
|
||||
BFFBFBBRRR
|
||||
BBBFFFFRLL
|
||||
BFFBFBFLRL
|
||||
FBBFBFBRRL
|
||||
FFFBFBBRRR
|
||||
BFBFBFFLLR
|
||||
FFBBFFBRLR
|
||||
BBFBBBFLRR
|
||||
BFFBBFFLLR
|
||||
FFBFFFFLRR
|
||||
BFBFFBBLLR
|
||||
FFBFFFFRLL
|
||||
FFFBBBBRLR
|
||||
FFFBFFBRRL
|
||||
FBBFBFBRLR
|
||||
FBFBFFBLLR
|
||||
FFFBBBFLLL
|
||||
BFBBBFFLLL
|
||||
FBBFBFBLLR
|
||||
FBBBBFBLLR
|
||||
FBBBFBFRRR
|
||||
BFFBFFBRRL
|
||||
BBFFFFFRLR
|
||||
BFFBFFFRRR
|
||||
BFFBBFBRLR
|
||||
FFBBBFFLRL
|
||||
BBFFBFFRRR
|
||||
FBFFFFFRRR
|
||||
FFFFBBFLLL
|
||||
BFFBBBBLLL
|
||||
FFBFBFBRLR
|
||||
FBBFFBBLRR
|
||||
FFFBBFBLRL
|
||||
BBFBBBBLLL
|
||||
BFBBBFFRLL
|
||||
BFFBBFBLLL
|
||||
BBFFBFFLLR
|
||||
BBBFFBFLLL
|
||||
BBFBFBFLLL
|
||||
FBBFFFFLLR
|
||||
BBBFFFFRRR
|
||||
FFBFBFBLLL
|
||||
FBFBFFFRLR
|
||||
BBFBFBBRRR
|
||||
FBFFFFBLRR
|
||||
BFBBBFBRLR
|
||||
BBBFFBFLLR
|
||||
FFBBFBFRLL
|
||||
FBFBBFBLLR
|
||||
BBFBFFBLLL
|
||||
FFFBFBBLRL
|
||||
FFBBFFFRLL
|
||||
FFFBFFBRLL
|
||||
FFFFBBFLRL
|
||||
BFFFBFFRRR
|
||||
BFBBFBBRLL
|
||||
BFFBBFBRRR
|
||||
BFFFFFFLLR
|
||||
BFFBBFFLLL
|
||||
FFFBFBFRLR
|
||||
FFBBBBBLLL
|
||||
FBBFBBBRRR
|
||||
BFBFBFFRRL
|
||||
FBFBBBFLRR
|
||||
FBFFFBBRLR
|
||||
FBBFBFBLRL
|
||||
FBFBBFFLRR
|
||||
FBBFFBFRLR
|
||||
FFBFFBBLLR
|
||||
FFFBBFFLLL
|
||||
FFBFBFFRLL
|
||||
BFFFBBFLLR
|
||||
FBBFFBFRLL
|
||||
FBBBBBFRLR
|
||||
FBFFBBFRRR
|
||||
FBBBBBFLLL
|
||||
FFFBBBBLLR
|
||||
BBFBFFFRLR
|
||||
FBFBFFFLRL
|
||||
FFBBBBFRLR
|
||||
FFBFFBBRRR
|
||||
BBFBFFBRLR
|
||||
FBBBBFFLLL
|
||||
FFFBBBBRRR
|
||||
FFBBFFBRRL
|
||||
FFFBBBBRRL
|
||||
FBFFFBBLLL
|
||||
BFBFFBBRRR
|
||||
BFFBFFFLLR
|
||||
BBFFFBFLRR
|
||||
FFBBBFBLRR
|
||||
FFBFFBBRLR
|
||||
BFBFFBFRLL
|
||||
FBBFBBBLLR
|
||||
FFBBBBBRRL
|
||||
FBBFBFBRLL
|
||||
FBFBFBFLLR
|
||||
FBBBFBFLLL
|
||||
BBFBBFFRLR
|
||||
BFFFFBFRLR
|
||||
FBBFFBBRRR
|
||||
FBBFFBFLLR
|
||||
BFBFBFBRLL
|
||||
FFFBFFBLRL
|
||||
FFBBFFFRLR
|
||||
FFFBBFFRLL
|
||||
BFBFBBBRLR
|
||||
FBFFFFFLRR
|
||||
FBBBFFFLLL
|
||||
FBFFFBBLLR
|
||||
FBFBFBFRLR
|
||||
FBFBFFBLRR
|
||||
FFBFBBFRLL
|
||||
FBBBBFFLLR
|
||||
FFFBFBFRLL
|
||||
FFFBBBFLRR
|
||||
BFBBFFBLLR
|
||||
FBFFFFBLRL
|
||||
BFBBFBFRLR
|
||||
FBFBFFFRLL
|
||||
BFBFFBFLRL
|
||||
BBFFBFFLRR
|
||||
FFBFFBFRLR
|
||||
FFBFFFBLRR
|
||||
FFFBBFFLRR
|
||||
BFFFFBFLRL
|
||||
BFFBBBFRLL
|
||||
FBFBBFBLRL
|
||||
BFFBBBBLRL
|
||||
BFFFFBBLLR
|
||||
FBBBBBBRLR
|
||||
FBFFFBFLLR
|
||||
BFFBBFFLRL
|
||||
FBFBBFBRLL
|
||||
FFBBFFBLLR
|
||||
BBFBFBFRRL
|
||||
FFBFFBBRLL
|
||||
BBFFFFFLLR
|
||||
BFBFFFFLRL
|
||||
FBBBFBBRRR
|
||||
FFFFBBFRRR
|
||||
BFBBFFFRLR
|
||||
FBFFFFBRRL
|
||||
BFFFFFFRRL
|
||||
BFFFBFFRLL
|
||||
FBBBFFBRLR
|
||||
BFBFBBFRLL
|
||||
BFBFFFBLRL
|
||||
BFFBFBBLLR
|
||||
FFFFBBFRRL
|
||||
BFBBFFBRLL
|
||||
FBFBBBFRLL
|
||||
FFBFFFBRLR
|
||||
BFBFFFFRLR
|
||||
BBFBFBFLLR
|
||||
FFBFFBBRRL
|
||||
BBFBBFBLLR
|
||||
BBFFBFBRLL
|
||||
FFBBBBBRLL
|
||||
FFFBBFBLLL
|
||||
FBFFBBBRLR
|
||||
FBBFBBFLRR
|
||||
BBFFFBBLLR
|
||||
FBBFBFBRRR
|
||||
BFBBFFBRRR
|
||||
BFBFFFBRRR
|
||||
BBFFFFFLLL
|
||||
BBFBBFBRRL
|
||||
FBFFBFBLRL
|
||||
BFBBFFFRRR
|
||||
FBFFFFBLLL
|
||||
BBFBBFFRLL
|
||||
BFFBBBFRLR
|
||||
FBBFFBFLRR
|
||||
FBFBFFFLRR
|
||||
BFBBFFBLRL
|
||||
FBBFBBBRLL
|
||||
BFBFBFBRLR
|
||||
FFFBFFBLRR
|
||||
FFBFFFBLRL
|
||||
FBFBFBBRRL
|
||||
FBFFFFFRLL
|
||||
BFBBBBBRLL
|
||||
FBBFBBFLLL
|
||||
BFBFFFBLRR
|
||||
BBFFBBBLLR
|
||||
BBFBFFBRRL
|
||||
FBBBBFFRLL
|
||||
BFFFFFBLRL
|
||||
FFBFFFFRLR
|
||||
FBBFFFBLRR
|
||||
BFBBBBBLRL
|
||||
BFFBFFBLRR
|
||||
FFBFBBBLRR
|
||||
BFFFBBBLRR
|
||||
FBFBFBFLRL
|
||||
BBFBBFBRLR
|
||||
FBBFFFFRRL
|
||||
FBBBBBFLLR
|
||||
FFFBBBFRRL
|
||||
FFBFBBBLRL
|
||||
FFBBBFFRLR
|
||||
FBFBFBBRLL
|
||||
FBFFFBBLRL
|
||||
FFBBBFFRRL
|
||||
BFBBBBFRLL
|
||||
BBFFFBFLLR
|
||||
FFBFFFFRRL
|
||||
FFBFBFFLRR
|
||||
FFBFBBFLLR
|
||||
BFBFFBBLRL
|
||||
BBFFBFBLRL
|
||||
FBBFFFBLLL
|
||||
FBBBFFFRLL
|
||||
FFBFFBFRLL
|
||||
FFFFBBFRLL
|
||||
FBFFFFFLLL
|
||||
BFFFBBFLRL
|
||||
FFBBBFFLLL
|
||||
FBFBBFFRRL
|
||||
FBFFBFFLLR
|
||||
FBBBFBFLLR
|
||||
FFBFFFBRRL
|
||||
BFBFFFFRRL
|
||||
BBFFBBBRRL
|
||||
FFBBFBFRLR
|
||||
FBFFBFBLLR
|
||||
BFBFBFFRLL
|
||||
FBFFBFFLRL
|
||||
BBFBBBFRLL
|
||||
BFFBBFFRLL
|
||||
FFBBFBBLLR
|
||||
BBBFFFFRRL
|
||||
FBBBFFFRRL
|
||||
BFBFBBFLRL
|
||||
FBBFBBFLRL
|
||||
FBBBBFBRRR
|
||||
BBFFFBBLRL
|
||||
BBFFBBFRRL
|
||||
BBFBFFBLRL
|
||||
BFFFBBBRRR
|
||||
BBFFBBFRLL
|
||||
FBBBFFBRRR
|
||||
FFBBFFFLRL
|
||||
BFFFFFFRLL
|
||||
BFBFBFFLRR
|
||||
BFFBBBFLLL
|
||||
BFBFFBFLLR
|
||||
BBFBBFFLLL
|
||||
FFBFFBFLLL
|
||||
BFFFBFFLLR
|
||||
FFBFBBBLLL
|
||||
BBFBFFBRLL
|
||||
FBFBBBBRLL
|
||||
FFBBBBFLRR
|
||||
FFFBFBBLLL
|
||||
FBFBBFFRRR
|
||||
FBFFBFFLLL
|
||||
BBFFFBFLLL
|
||||
BBBFFFFLLL
|
||||
BFFFFBBRLR
|
||||
BFBFFBFRLR
|
||||
BBFFBBBLRR
|
||||
FFBBFFFLLR
|
||||
FBBBFBBRRL
|
||||
FFBBBFBRRR
|
||||
FFBFFFBLLR
|
||||
FBFBBBFLLL
|
||||
FFBBFBFRRR
|
||||
FFBFFBFLRL
|
||||
BBFBFFBRRR
|
||||
BFBFBBFLLL
|
||||
BFFBBBFLRR
|
||||
FBBFFFBLRL
|
||||
BBFFBBFRLR
|
||||
FBBBBFFLRL
|
||||
FBBFBFFRRL
|
||||
BBFFBBFLRR
|
||||
BFFFFFBRLL
|
||||
FBBBFBFRRL
|
||||
FBFBFFFRRL
|
||||
BBFFFBBLLL
|
||||
FBFBBBFLLR
|
||||
BBFBFBBRLR
|
||||
FFBFFBFRRL
|
||||
BFFFFBBRLL
|
||||
FBBFBBFRRR
|
||||
FBFFBFFRRR
|
||||
FBFBBBBRLR
|
||||
BBFBBFFLRR
|
||||
BFBBFBBRRL
|
||||
BBFFBFBLRR
|
||||
BBFFFFFLRR
|
||||
BFFBBBBRLR
|
||||
BBFFFBFLRL
|
||||
FFFFBFBRRL
|
||||
BFBBFBFLLL
|
||||
FBFBBFFLLL
|
||||
BFBBBBFRLR
|
||||
BFFFBFBLLL
|
||||
FBFBBBFRRL
|
||||
FBFBFFFRRR
|
||||
FFBFFFBRRR
|
||||
FFBBFBFRRL
|
||||
FFFBFFFLLR
|
||||
BBBFFFFLLR
|
||||
FFBFBBBRLL
|
||||
FBBFBFBLRR
|
||||
BFFBFBFLLL
|
||||
FBBFBBFRLR
|
||||
FBFBFFBLLL
|
||||
FFFFBBBRRR
|
||||
FBBFFBBLLL
|
||||
FBFFBFFRLL
|
||||
BBFBFFBLRR
|
||||
BFFBFFFLRR
|
||||
BFBBBBFRRL
|
||||
BFFFBBBLLL
|
||||
BFFBBBFRRR
|
||||
FFBFBBFRLR
|
||||
BFBBFFFRLL
|
||||
FFBBFBFLRL
|
||||
FFBFBFFRLR
|
||||
FBBBBBBLLL
|
||||
FBBFFBFLRL
|
||||
FFFBFBFLRR
|
||||
BFFFFFFLRL
|
||||
FBBBBFBRRL
|
||||
BFBFBFBLLL
|
||||
FBBFBBBRLR
|
||||
BFFFFBBLRR
|
||||
BBFFFFBLLL
|
||||
FFFBBBBLRL
|
||||
FBFBFBBLRR
|
||||
BFBBFBBLLR
|
||||
BBFFFBBRRL
|
||||
BBFBBBBRLL
|
||||
FFBBBFFLRR
|
||||
FBFFFBBRLL
|
||||
BBFFFBBRLL
|
||||
BFFBBFBRRL
|
||||
FFFBBFFRRL
|
||||
BFFBBBBRRL
|
||||
BFFFFBFLRR
|
||||
FFBBFBBLRL
|
||||
BFBBBBBLLR
|
||||
BFBBFBBLLL
|
||||
BFFFBFBLRR
|
||||
FBBBBFFRLR
|
||||
FBBFFFFRRR
|
||||
BFBBBBBRRL
|
||||
BBFFFBBRLR
|
||||
FFBBFFBLRR
|
||||
BBFBFBBLRL
|
||||
FBFFBBFLRL
|
||||
FFBBFBFLLR
|
||||
BFFFFFBRLR
|
||||
BFFBBBFLLR
|
||||
BFBBFBBLRL
|
||||
FFFBFFBRRR
|
||||
FBBFBBBRRL
|
||||
BFBFFBFRRL
|
||||
FBFBBBBLRR
|
||||
FBBFBBBLLL
|
||||
FFBBFBFLRR
|
||||
BBFFBBFLLL
|
||||
BFFFBBFRLR
|
||||
BFBBBFBRRR
|
||||
BFBFFFBLLL
|
||||
BBFFBBFLLR
|
||||
FBFBBBBRRL
|
||||
FFFBFBBRLR
|
||||
FBFBBBFRLR
|
||||
FFFBFFFRRR
|
||||
FFFFBBFLLR
|
||||
BFFFFBFLLR
|
||||
FBBBFBFLRR
|
||||
BBFBFFFRLL
|
||||
FBBBFBFRLR
|
||||
BFBFFFFRLL
|
||||
BBFFFFBLRL
|
||||
FFBBFFBLRL
|
||||
FFFBFBFLLR
|
||||
FBBFFFFLLL
|
||||
FBBFBFFLRL
|
||||
BFFFFBFRLL
|
||||
BBFFFFBRRL
|
||||
BFFBFFBRRR
|
||||
BFFFFFFLRR
|
||||
BFBFBFBRRL
|
||||
FBFFBBFRLL
|
||||
FFFFBBBLLR
|
||||
BBFBFBBRRL
|
||||
FFFBBBBLRR
|
||||
FFBBFBBRRR
|
||||
BFBFBFFLRL
|
||||
FBBBBBFRLL
|
||||
BFBBFFBRRL
|
||||
BFBBBBBRRR
|
||||
FBBFBFFLLL
|
||||
BFBFBFFLLL
|
||||
BFFBBFBLLR
|
||||
BFBFFFFLLL
|
||||
BBFFFBBLRR
|
||||
BFBBFFFRRL
|
||||
FFBFBFFRRL
|
||||
FFFBFBFRRR
|
||||
BBFFFFBLLR
|
||||
BFFFFFFRRR
|
||||
FFFFBBBLRL
|
||||
FBFFBBBRRL
|
||||
FBFBFBFRRR
|
||||
BFBFBFBLRR
|
||||
FFFBFBBLRR
|
||||
FBBFBBFLLR
|
||||
FBFBFFFLLL
|
||||
BFBFBBFRLR
|
||||
FFFBBFFRRR
|
||||
BFFFBFBLRL
|
||||
FBBBBBBRRR
|
||||
FBBBBBFRRL
|
||||
BBFFBFBRRR
|
||||
FBFBBFFRLL
|
||||
FFFBFFBRLR
|
||||
BBFFFBFRRR
|
||||
FBBBFFFRRR
|
||||
BBFBBFFLLR
|
||||
FBBFFBFRRR
|
||||
FFFBFFFLRL
|
||||
FFBFFFBLLL
|
||||
FFBFFBFLRR
|
||||
BFFFBFBRRR
|
||||
BFBFBBBLRL
|
||||
BFBFBFFRLR
|
||||
BBBFFBFLRR
|
||||
BBBFFFFLRR
|
||||
FBFBFBFLLL
|
||||
BFFBFBFLLR
|
||||
FBBBFFFRLR
|
||||
FFBBFFFLRR
|
||||
FBBBFFFLLR
|
||||
FBBFBFFRLL
|
||||
BBFFBBFRRR
|
||||
FBBFFBBLRL
|
||||
FBFFFFBRLR
|
||||
FBFBBFFLLR
|
||||
FBBBBBFRRR
|
||||
FFBBBBBLLR
|
||||
FBFBBBBRRR
|
||||
FFFBBFBRLR
|
||||
FBBFFFBRRL
|
||||
FBFFFBFRRL
|
||||
FBFFBBFLLR
|
||||
FFBFBBFLLL
|
||||
FBFBFBBRRR
|
||||
BFFFBBFRRL
|
||||
FFBFFBBLLL
|
||||
FBBFFBBLLR
|
||||
FFBFFFBRLL
|
||||
FBBFBBFRLL
|
||||
BFBFFFFLRR
|
||||
FFFBFBFRRL
|
||||
FFBFBFFLRL
|
||||
BBFBBBBLLR
|
||||
BFFBFBBLRR
|
||||
FBFBFFBRRL
|
||||
FBFBBBFLRL
|
||||
FBBBBFBRLL
|
||||
BBFBBBBRRL
|
||||
BFFFFFBRRR
|
||||
FFBBBFFRRR
|
||||
FFBFBFFRRR
|
||||
FBFBFBBLLR
|
||||
FBFBFFFLLR
|
||||
FBFFFBBRRL
|
||||
BFFBBFBLRL
|
||||
FBBBFFBLLL
|
||||
FFFBFBFLRL
|
||||
BFFFBFFLLL
|
||||
BBFBFBBRLL
|
||||
BFFBFBBLRL
|
||||
BFFBBBFLRL
|
||||
BBFBFFFLLL
|
||||
FFBFBBFRRR
|
||||
FFFBFFFRLL
|
||||
FBBBFBBRLR
|
||||
BBFFFFFRRR
|
||||
FFBFBFBRRL
|
||||
BFFFFFFRLR
|
||||
FBFFBBFRRL
|
||||
BFFFFBFLLL
|
||||
FBBBBBFLRR
|
||||
BBFBBBBLRL
|
||||
BFBBFFBLRR
|
||||
BFBFBBBLLL
|
||||
FBBFBBBLRL
|
||||
FBBBBBBLRR
|
||||
FBFFBFBRRL
|
||||
FBFFFBBLRR
|
||||
FFFBFFFRLR
|
||||
FFBBBFBLLL
|
||||
FBFBBFBLLL
|
||||
BFBFBBBRLL
|
||||
BFBBBBFRRR
|
||||
FFBFFFFLLL
|
||||
BFBBFFFLRL
|
||||
FBBFBFFRLR
|
||||
BBFBBFBRLL
|
||||
FFFBBBFRRR
|
||||
FFBFBFBLRL
|
||||
BFBBBBBLRR
|
||||
FFFFBBBRRL
|
||||
FBFFFBFRRR
|
||||
BFFBFBFRLL
|
||||
BFBFBBBRRR
|
||||
FBFFFFFLRL
|
||||
FBFFBFBRRR
|
||||
BFBBFBFLRR
|
||||
FBFBFBBLRL
|
||||
BFFFFBBRRR
|
||||
BFBBFFFLRR
|
||||
FFBFFBBLRR
|
||||
FFBBFBFLLL
|
||||
FFFFBBBLLL
|
||||
FFBFFFFLLR
|
||||
BFBBBBFLRR
|
||||
FBFFBBBLLL
|
||||
BFFFFFBLLL
|
||||
FFBBFFFRRR
|
||||
BBFBFFFLRL
|
||||
FBBBBBBLRL
|
||||
FBBBBFBLLL
|
||||
FFBFBFBRRR
|
||||
FBFFBFBLLL
|
||||
BFBBBFBLLR
|
||||
FBFFBFFLRR
|
||||
BFFFFFBLLR
|
||||
FFFBBFFRLR
|
||||
BFBBBFBLRL
|
||||
BFFBFFBRLL
|
||||
FFBFFFFLRL
|
||||
FFBBBBBRLR
|
||||
FFBFFBFRRR
|
||||
BFBFFBFRRR
|
||||
BBBFFFBRLL
|
||||
BBFFFFFLRL
|
||||
FFFBBFBRLL
|
||||
FBBBBBFLRL
|
||||
BFBFBBBRRL
|
||||
FFBFFBBLRL
|
||||
BBFBBFFRRL
|
||||
FBFBBBBLLR
|
||||
BFFFBBBRLR
|
||||
BBBFFFFRLR
|
||||
FFBFBBFLRR
|
||||
BFFFBBBLLR
|
||||
FBBBBFBLRL
|
||||
FFFFBBFLRR
|
||||
FBFBBFBRRR
|
||||
FBFBBBFRRR
|
||||
BFFBFFBLLL
|
||||
FBBBBBBRRL
|
||||
FFBBFFFRRL
|
||||
BBFBFFBLLR
|
||||
FBBFFFFRLR
|
||||
FBBFFBBRLL
|
||||
BFBBBBFLLR
|
||||
BBBFFBFLRL
|
||||
BBFFBBBRLR
|
||||
BFBBFBFLRL
|
||||
FFBBBFBLLR
|
||||
FFFFBBFRLR
|
||||
FBBBFBBLRR
|
||||
BBFBBFFLRL
|
||||
BBFBBBBRRR
|
||||
BFFFBFFRRL
|
||||
BFFBBFFRRR
|
||||
FFBFBFBRLL
|
||||
FFBFBBBRLR
|
||||
FBBFFBFRRL
|
||||
FBBFFFFLRL
|
||||
FBBFFBBRRL
|
||||
BFFBFBFRRL
|
||||
FFFBFFFLLL
|
||||
FBFFFFFRLR
|
||||
BFBBBBFLRL
|
||||
FFFFBFBRRR
|
||||
BFFFBBFLRR
|
||||
BFBBBFBRRL
|
||||
BBFBBFBRRR
|
||||
BBFFFBFRLL
|
||||
BFFBFBBLLL
|
||||
FBFBFFBRRR
|
||||
FFBBBBBRRR
|
2190
2020/inputs/day_06
Normal file
2190
2020/inputs/day_06
Normal file
File diff suppressed because it is too large
Load Diff
594
2020/inputs/day_07
Normal file
594
2020/inputs/day_07
Normal file
@@ -0,0 +1,594 @@
|
||||
plaid beige bags contain 3 drab magenta bags.
|
||||
dim silver bags contain 2 shiny chartreuse bags, 4 dull magenta bags.
|
||||
bright silver bags contain 2 faded maroon bags.
|
||||
shiny cyan bags contain 4 plaid green bags, 4 dim coral bags, 4 dull indigo bags.
|
||||
shiny orange bags contain 3 dim cyan bags, 1 mirrored beige bag, 5 pale orange bags.
|
||||
posh gray bags contain 5 dark bronze bags, 2 striped lavender bags, 3 light tan bags.
|
||||
clear lime bags contain 1 shiny crimson bag, 1 dark plum bag.
|
||||
wavy chartreuse bags contain 1 striped crimson bag, 3 mirrored black bags.
|
||||
pale violet bags contain 3 clear teal bags, 5 clear olive bags, 3 posh bronze bags.
|
||||
shiny plum bags contain 5 dotted beige bags, 1 faded orange bag.
|
||||
dark lime bags contain 1 clear blue bag, 2 posh green bags, 2 striped plum bags, 5 posh purple bags.
|
||||
striped brown bags contain 1 drab cyan bag, 3 light silver bags.
|
||||
pale chartreuse bags contain 4 drab aqua bags, 3 striped tan bags, 1 shiny tan bag.
|
||||
clear magenta bags contain 1 dotted bronze bag, 4 striped salmon bags, 2 wavy purple bags.
|
||||
drab indigo bags contain 3 shiny brown bags, 4 striped purple bags, 5 dull magenta bags, 5 plaid chartreuse bags.
|
||||
mirrored maroon bags contain 2 dotted tan bags, 2 bright green bags, 5 light black bags, 3 vibrant silver bags.
|
||||
shiny purple bags contain 1 bright lime bag, 5 muted violet bags.
|
||||
pale bronze bags contain 3 muted green bags, 4 wavy tomato bags.
|
||||
striped beige bags contain 1 faded violet bag, 4 wavy cyan bags, 5 pale orange bags.
|
||||
plaid tomato bags contain 5 plaid white bags, 1 light silver bag, 3 drab blue bags.
|
||||
faded gray bags contain 3 shiny lime bags, 4 muted tan bags, 2 light black bags, 2 vibrant gold bags.
|
||||
dotted blue bags contain 5 wavy violet bags, 2 clear orange bags.
|
||||
dotted olive bags contain 1 shiny purple bag, 5 dim fuchsia bags.
|
||||
light indigo bags contain 2 wavy cyan bags.
|
||||
pale silver bags contain 5 dark black bags, 5 posh gold bags, 1 drab salmon bag, 5 clear bronze bags.
|
||||
light lavender bags contain 3 dark cyan bags, 4 mirrored indigo bags, 4 light brown bags.
|
||||
dull lavender bags contain 4 pale indigo bags, 1 dim cyan bag.
|
||||
posh gold bags contain 3 light brown bags, 1 shiny turquoise bag, 2 drab cyan bags.
|
||||
muted violet bags contain 4 pale green bags.
|
||||
posh blue bags contain 2 light lime bags.
|
||||
light violet bags contain 1 posh red bag, 1 vibrant gold bag, 5 pale beige bags.
|
||||
dark beige bags contain 1 dim orange bag, 5 plaid red bags, 2 clear crimson bags.
|
||||
muted magenta bags contain 1 wavy olive bag, 1 drab maroon bag, 1 muted silver bag.
|
||||
faded white bags contain 2 dull orange bags, 4 dim olive bags, 2 dull olive bags.
|
||||
faded salmon bags contain 3 dull white bags.
|
||||
shiny tan bags contain 4 posh red bags, 1 vibrant gray bag, 3 bright red bags, 3 clear orange bags.
|
||||
light tomato bags contain 2 striped bronze bags.
|
||||
pale orange bags contain 4 drab maroon bags, 4 pale beige bags, 5 posh purple bags.
|
||||
dotted brown bags contain 1 dotted beige bag, 1 faded green bag, 5 muted bronze bags, 5 striped purple bags.
|
||||
clear gold bags contain 1 pale cyan bag, 3 dark turquoise bags.
|
||||
drab lavender bags contain 2 faded silver bags, 2 muted violet bags.
|
||||
dull orange bags contain 1 dim gray bag.
|
||||
faded plum bags contain 1 mirrored gold bag, 3 bright indigo bags, 1 pale violet bag, 4 dotted tomato bags.
|
||||
drab fuchsia bags contain 1 light fuchsia bag.
|
||||
dotted black bags contain 2 mirrored red bags.
|
||||
drab brown bags contain 3 dim yellow bags, 2 shiny turquoise bags, 5 faded purple bags.
|
||||
dull tomato bags contain 2 striped silver bags.
|
||||
drab red bags contain 1 dotted silver bag, 2 light white bags, 1 vibrant purple bag.
|
||||
pale red bags contain 1 clear black bag.
|
||||
muted indigo bags contain 3 shiny red bags, 3 clear lavender bags, 4 clear aqua bags, 4 shiny maroon bags.
|
||||
drab violet bags contain 5 light blue bags, 5 vibrant bronze bags, 2 dotted gold bags.
|
||||
dim green bags contain 5 drab black bags, 5 mirrored maroon bags, 4 bright aqua bags.
|
||||
mirrored salmon bags contain 1 drab purple bag.
|
||||
plaid red bags contain 1 drab blue bag, 1 pale chartreuse bag, 3 light blue bags, 5 clear fuchsia bags.
|
||||
posh tomato bags contain 1 vibrant maroon bag.
|
||||
faded bronze bags contain 4 dim crimson bags.
|
||||
plaid teal bags contain 2 striped bronze bags, 3 dotted orange bags.
|
||||
vibrant lime bags contain 2 light silver bags, 4 clear salmon bags.
|
||||
plaid crimson bags contain 5 drab beige bags, 5 shiny gray bags, 3 faded green bags.
|
||||
posh yellow bags contain 1 mirrored red bag, 3 pale maroon bags, 3 clear crimson bags, 3 bright chartreuse bags.
|
||||
faded chartreuse bags contain 2 faded purple bags, 1 plaid cyan bag, 2 wavy black bags, 5 plaid plum bags.
|
||||
dotted maroon bags contain 2 clear turquoise bags, 2 dotted bronze bags.
|
||||
striped chartreuse bags contain 4 dotted blue bags.
|
||||
bright tomato bags contain 3 plaid salmon bags, 1 wavy bronze bag.
|
||||
light yellow bags contain 3 shiny salmon bags, 5 bright magenta bags.
|
||||
light red bags contain 5 vibrant maroon bags, 4 dim olive bags, 4 bright salmon bags.
|
||||
wavy red bags contain 1 pale teal bag, 5 mirrored crimson bags, 1 bright beige bag.
|
||||
vibrant salmon bags contain 3 dull violet bags, 3 dim cyan bags.
|
||||
bright turquoise bags contain 1 light brown bag, 1 posh olive bag, 1 plaid white bag, 1 striped beige bag.
|
||||
bright chartreuse bags contain 3 dull green bags, 2 striped gold bags, 4 dotted lavender bags.
|
||||
wavy lime bags contain 5 striped salmon bags, 1 pale fuchsia bag, 2 dim red bags.
|
||||
dim fuchsia bags contain 5 light beige bags, 5 clear cyan bags, 5 plaid gray bags, 4 dotted cyan bags.
|
||||
muted olive bags contain 3 posh plum bags, 2 plaid green bags, 3 dull white bags, 5 vibrant maroon bags.
|
||||
mirrored indigo bags contain 3 faded silver bags.
|
||||
muted teal bags contain 1 pale lime bag, 5 faded gold bags, 3 bright coral bags.
|
||||
wavy maroon bags contain 4 muted violet bags, 1 pale yellow bag, 5 dim cyan bags.
|
||||
striped salmon bags contain 1 shiny tomato bag.
|
||||
dotted green bags contain 3 striped teal bags, 4 striped blue bags, 5 dotted cyan bags, 5 bright lime bags.
|
||||
dim gold bags contain 1 pale lavender bag, 1 faded magenta bag, 2 light black bags, 5 clear turquoise bags.
|
||||
faded beige bags contain 5 wavy teal bags, 1 drab brown bag, 2 dull olive bags.
|
||||
dull salmon bags contain 5 muted chartreuse bags, 1 bright plum bag, 4 clear blue bags.
|
||||
clear violet bags contain 5 dark crimson bags, 2 dark aqua bags, 3 bright green bags, 3 wavy white bags.
|
||||
dark chartreuse bags contain 4 bright crimson bags, 5 clear orange bags, 1 striped aqua bag.
|
||||
striped bronze bags contain 5 faded beige bags.
|
||||
plaid green bags contain 4 pale tan bags, 2 vibrant gold bags, 3 clear chartreuse bags, 3 dotted fuchsia bags.
|
||||
dim magenta bags contain 1 muted orange bag.
|
||||
shiny green bags contain 5 drab tan bags, 3 faded tan bags, 1 posh brown bag, 5 pale yellow bags.
|
||||
clear purple bags contain 3 muted indigo bags, 2 drab brown bags.
|
||||
vibrant cyan bags contain 3 striped tan bags, 4 pale salmon bags, 3 striped tomato bags.
|
||||
drab green bags contain 5 shiny fuchsia bags, 5 dull orange bags, 1 light violet bag, 3 bright purple bags.
|
||||
pale purple bags contain 1 shiny gold bag, 5 plaid gray bags.
|
||||
shiny silver bags contain 1 faded beige bag, 5 mirrored yellow bags, 1 light fuchsia bag, 4 muted yellow bags.
|
||||
mirrored beige bags contain 4 mirrored gold bags.
|
||||
dim salmon bags contain 3 drab tan bags, 3 pale beige bags, 2 faded magenta bags.
|
||||
vibrant crimson bags contain 2 faded aqua bags, 5 wavy maroon bags.
|
||||
vibrant beige bags contain 5 muted magenta bags, 1 bright purple bag.
|
||||
dull indigo bags contain 4 vibrant salmon bags, 3 dull magenta bags.
|
||||
posh orange bags contain 5 bright red bags.
|
||||
dim crimson bags contain 2 pale fuchsia bags, 4 shiny maroon bags.
|
||||
vibrant green bags contain 2 dark green bags, 5 pale chartreuse bags.
|
||||
faded indigo bags contain 1 wavy gold bag, 5 dotted crimson bags.
|
||||
dull plum bags contain 5 faded gold bags, 1 mirrored gold bag, 3 striped gold bags.
|
||||
mirrored yellow bags contain 4 faded violet bags.
|
||||
dull cyan bags contain 2 drab tan bags, 2 dotted beige bags, 2 posh olive bags.
|
||||
bright gold bags contain 5 mirrored beige bags, 1 bright coral bag, 2 plaid turquoise bags, 3 striped crimson bags.
|
||||
light green bags contain 2 drab teal bags, 1 wavy coral bag, 1 muted violet bag, 4 clear black bags.
|
||||
bright magenta bags contain 5 mirrored maroon bags, 4 drab crimson bags, 2 dark salmon bags, 3 dark violet bags.
|
||||
dotted gray bags contain 3 drab gold bags, 5 posh lime bags, 3 dim yellow bags.
|
||||
posh white bags contain 1 pale green bag, 4 striped tomato bags, 2 striped plum bags, 5 muted orange bags.
|
||||
mirrored orange bags contain 2 dim silver bags.
|
||||
mirrored gold bags contain no other bags.
|
||||
dull yellow bags contain 5 clear beige bags, 2 striped silver bags.
|
||||
dull bronze bags contain 1 shiny turquoise bag, 1 dull gray bag, 2 faded purple bags.
|
||||
dotted yellow bags contain 4 striped coral bags, 5 pale gray bags.
|
||||
drab teal bags contain 1 wavy olive bag, 3 shiny tomato bags, 5 pale aqua bags, 3 dark blue bags.
|
||||
vibrant red bags contain 5 dark crimson bags, 1 drab silver bag.
|
||||
faded lavender bags contain 1 dark coral bag, 3 clear violet bags, 1 faded magenta bag, 1 plaid gold bag.
|
||||
wavy aqua bags contain 2 light teal bags, 5 pale turquoise bags, 5 faded lime bags, 3 dull plum bags.
|
||||
dotted purple bags contain 1 posh tomato bag.
|
||||
dark gray bags contain 2 dark tomato bags.
|
||||
dark lavender bags contain 1 shiny crimson bag.
|
||||
posh silver bags contain 5 drab cyan bags, 4 bright blue bags, 3 wavy lime bags, 4 vibrant violet bags.
|
||||
mirrored olive bags contain 3 shiny green bags, 3 faded gold bags.
|
||||
striped lime bags contain 4 light black bags, 1 bright salmon bag, 2 posh bronze bags.
|
||||
faded coral bags contain 2 muted yellow bags, 3 bright maroon bags.
|
||||
clear gray bags contain 4 wavy beige bags, 1 dull beige bag, 5 dim bronze bags, 1 faded chartreuse bag.
|
||||
plaid chartreuse bags contain 1 posh lavender bag, 3 dull orange bags.
|
||||
bright violet bags contain 3 striped green bags.
|
||||
wavy turquoise bags contain 5 vibrant maroon bags, 3 drab tomato bags, 1 drab crimson bag.
|
||||
striped plum bags contain 5 clear cyan bags, 5 shiny turquoise bags, 4 mirrored gold bags.
|
||||
posh green bags contain 4 muted orange bags, 2 shiny turquoise bags.
|
||||
dark fuchsia bags contain 3 pale cyan bags, 1 drab lime bag, 4 pale gray bags.
|
||||
mirrored lavender bags contain 5 dull tomato bags, 1 light purple bag.
|
||||
wavy coral bags contain 4 vibrant plum bags, 1 muted silver bag, 5 dark orange bags, 3 faded yellow bags.
|
||||
dark green bags contain 2 striped yellow bags, 1 light bronze bag, 1 drab indigo bag, 1 plaid red bag.
|
||||
pale crimson bags contain 1 dull orange bag, 5 bright turquoise bags, 5 pale coral bags, 5 bright indigo bags.
|
||||
faded magenta bags contain 3 dull olive bags, 5 pale cyan bags, 1 vibrant magenta bag, 3 plaid olive bags.
|
||||
plaid violet bags contain 2 pale olive bags, 5 faded magenta bags, 5 drab brown bags, 2 mirrored white bags.
|
||||
pale aqua bags contain 4 dotted tan bags, 1 mirrored crimson bag, 3 light silver bags.
|
||||
drab purple bags contain 2 faded chartreuse bags, 5 muted chartreuse bags.
|
||||
dim chartreuse bags contain 1 mirrored gold bag.
|
||||
clear green bags contain 4 faded red bags, 1 clear magenta bag, 2 drab teal bags.
|
||||
light brown bags contain 3 vibrant gray bags, 2 shiny plum bags.
|
||||
faded cyan bags contain 2 muted lavender bags.
|
||||
dotted plum bags contain 4 shiny green bags, 1 dark aqua bag.
|
||||
dull olive bags contain 5 faded silver bags, 4 wavy maroon bags, 4 plaid gray bags.
|
||||
dark teal bags contain 4 clear indigo bags, 2 dotted aqua bags, 5 faded tomato bags.
|
||||
vibrant fuchsia bags contain 5 drab beige bags, 5 shiny maroon bags, 5 wavy coral bags.
|
||||
bright crimson bags contain 5 wavy olive bags.
|
||||
pale tomato bags contain 2 mirrored orange bags, 2 dim maroon bags, 3 faded teal bags, 2 wavy silver bags.
|
||||
wavy magenta bags contain 3 dark lime bags, 2 wavy silver bags, 4 clear turquoise bags.
|
||||
plaid coral bags contain 2 faded red bags, 2 vibrant indigo bags, 1 dark teal bag, 5 dull purple bags.
|
||||
bright purple bags contain 3 bright red bags, 5 posh olive bags, 5 posh lavender bags.
|
||||
muted silver bags contain 2 posh purple bags, 3 dotted lime bags.
|
||||
clear red bags contain 5 light turquoise bags.
|
||||
dark aqua bags contain 1 light purple bag, 2 muted bronze bags, 5 dim cyan bags.
|
||||
shiny brown bags contain 1 mirrored beige bag, 5 posh purple bags, 2 clear blue bags, 1 clear bronze bag.
|
||||
shiny red bags contain 3 shiny fuchsia bags, 5 mirrored crimson bags.
|
||||
dim purple bags contain 1 dull beige bag, 4 dotted silver bags, 4 light cyan bags.
|
||||
faded teal bags contain 5 wavy gold bags, 1 pale cyan bag, 4 dark crimson bags, 3 dark coral bags.
|
||||
wavy teal bags contain 5 shiny coral bags, 2 shiny brown bags, 3 dark crimson bags.
|
||||
muted green bags contain 1 posh red bag, 4 bright indigo bags.
|
||||
drab gold bags contain 2 dark tomato bags, 5 pale tan bags.
|
||||
wavy yellow bags contain 5 dotted gold bags, 2 plaid olive bags, 2 muted olive bags.
|
||||
striped blue bags contain 4 posh green bags, 5 pale beige bags.
|
||||
light blue bags contain 3 striped beige bags, 3 drab lime bags, 2 mirrored brown bags.
|
||||
mirrored bronze bags contain 3 faded aqua bags.
|
||||
faded fuchsia bags contain 2 posh olive bags, 5 muted olive bags.
|
||||
dotted tomato bags contain 1 striped magenta bag, 5 posh gold bags.
|
||||
bright orange bags contain 5 light magenta bags.
|
||||
vibrant turquoise bags contain 1 striped fuchsia bag, 4 dim chartreuse bags.
|
||||
dark orange bags contain 3 drab turquoise bags, 1 drab orange bag.
|
||||
vibrant brown bags contain 2 faded aqua bags, 3 drab maroon bags, 2 bright orange bags.
|
||||
mirrored teal bags contain 3 posh aqua bags, 4 dim bronze bags, 5 pale yellow bags.
|
||||
plaid cyan bags contain 1 posh lavender bag.
|
||||
posh tan bags contain 3 muted bronze bags, 3 clear crimson bags, 2 dim tomato bags.
|
||||
clear silver bags contain 5 pale olive bags, 1 muted olive bag.
|
||||
bright cyan bags contain 5 dark coral bags.
|
||||
dark cyan bags contain 2 posh orange bags.
|
||||
striped tan bags contain 1 pale beige bag, 1 striped magenta bag, 1 clear cyan bag, 5 faded orange bags.
|
||||
muted turquoise bags contain 4 mirrored gold bags, 4 striped gray bags.
|
||||
wavy purple bags contain 1 dotted tan bag, 2 shiny plum bags.
|
||||
dull magenta bags contain 1 wavy bronze bag, 2 shiny beige bags.
|
||||
faded black bags contain 3 wavy violet bags, 2 clear black bags.
|
||||
drab plum bags contain 2 muted violet bags, 4 pale blue bags, 5 vibrant plum bags.
|
||||
clear yellow bags contain 4 pale teal bags, 5 vibrant gold bags, 5 light brown bags, 1 wavy gray bag.
|
||||
dull silver bags contain 1 wavy silver bag, 4 dark orange bags, 3 faded violet bags, 1 faded gold bag.
|
||||
vibrant olive bags contain 4 drab blue bags, 2 shiny tan bags, 1 light orange bag, 2 light magenta bags.
|
||||
shiny yellow bags contain 1 posh lavender bag, 1 vibrant coral bag.
|
||||
clear olive bags contain 1 dark salmon bag, 3 mirrored crimson bags, 3 dull silver bags, 3 dotted lime bags.
|
||||
light beige bags contain 4 drab indigo bags, 5 drab brown bags.
|
||||
drab tan bags contain 3 clear cyan bags, 3 drab crimson bags, 2 vibrant gray bags.
|
||||
muted crimson bags contain 5 dark tomato bags, 2 shiny maroon bags, 2 pale olive bags.
|
||||
posh chartreuse bags contain 4 wavy crimson bags, 2 posh olive bags, 2 dim fuchsia bags, 4 dim orange bags.
|
||||
posh crimson bags contain 4 faded chartreuse bags, 1 clear white bag, 2 clear beige bags.
|
||||
mirrored cyan bags contain 4 dark bronze bags.
|
||||
dim orange bags contain 2 striped teal bags, 1 striped crimson bag, 5 wavy purple bags, 3 wavy brown bags.
|
||||
striped green bags contain 2 vibrant green bags, 3 faded green bags, 4 muted lavender bags, 2 dull green bags.
|
||||
drab beige bags contain 5 posh purple bags.
|
||||
dark blue bags contain 5 light tan bags.
|
||||
clear plum bags contain 4 pale green bags, 2 light olive bags.
|
||||
dull green bags contain 3 bright green bags.
|
||||
wavy plum bags contain 4 faded orange bags, 5 pale green bags, 4 faded violet bags, 4 posh green bags.
|
||||
striped lavender bags contain 2 striped gray bags, 1 wavy plum bag, 1 wavy cyan bag.
|
||||
dull coral bags contain 3 shiny chartreuse bags, 5 clear black bags, 4 vibrant crimson bags, 3 dim gray bags.
|
||||
dull red bags contain 1 shiny gray bag.
|
||||
dull brown bags contain 5 striped bronze bags, 3 striped beige bags, 3 bright purple bags, 2 dull blue bags.
|
||||
light turquoise bags contain 3 striped turquoise bags, 2 bright coral bags, 5 posh olive bags.
|
||||
dotted lime bags contain 5 clear cyan bags, 5 mirrored beige bags.
|
||||
muted blue bags contain 4 light bronze bags, 4 light orange bags.
|
||||
dark salmon bags contain 2 dotted lime bags.
|
||||
dark plum bags contain 2 dotted blue bags, 5 faded green bags.
|
||||
mirrored red bags contain 2 striped magenta bags, 3 muted violet bags, 5 dim yellow bags, 1 mirrored beige bag.
|
||||
dim lavender bags contain 1 wavy teal bag, 4 muted violet bags.
|
||||
dim white bags contain 5 striped gray bags, 5 bright aqua bags.
|
||||
vibrant violet bags contain 4 dull lavender bags, 2 pale teal bags, 5 posh lavender bags, 2 shiny green bags.
|
||||
pale yellow bags contain 1 wavy cyan bag, 1 dotted tomato bag.
|
||||
shiny indigo bags contain 5 vibrant tan bags, 3 shiny teal bags, 3 pale gray bags.
|
||||
dotted chartreuse bags contain 1 dim blue bag, 1 shiny orange bag, 5 pale turquoise bags, 1 shiny plum bag.
|
||||
light olive bags contain 1 dull magenta bag.
|
||||
striped white bags contain 5 light maroon bags, 5 pale teal bags, 2 dim gray bags, 5 posh gold bags.
|
||||
dim teal bags contain 4 posh white bags.
|
||||
plaid magenta bags contain 4 pale brown bags, 3 wavy violet bags, 4 dim teal bags.
|
||||
plaid indigo bags contain 1 wavy bronze bag, 1 faded green bag, 2 dotted teal bags.
|
||||
dull turquoise bags contain 3 striped violet bags.
|
||||
vibrant lavender bags contain 2 dotted bronze bags, 5 vibrant silver bags.
|
||||
light crimson bags contain 4 plaid tan bags, 4 striped beige bags, 4 plaid silver bags, 2 light red bags.
|
||||
bright lime bags contain 4 dim indigo bags, 5 light beige bags, 5 wavy olive bags.
|
||||
mirrored turquoise bags contain 5 posh green bags, 4 striped tan bags, 3 dull cyan bags, 3 vibrant blue bags.
|
||||
mirrored blue bags contain 4 posh cyan bags, 2 pale olive bags.
|
||||
plaid tan bags contain 3 posh white bags, 1 posh turquoise bag.
|
||||
drab coral bags contain 1 mirrored lavender bag, 4 vibrant salmon bags.
|
||||
plaid olive bags contain 4 bright salmon bags, 1 drab brown bag, 3 drab cyan bags.
|
||||
pale indigo bags contain 1 shiny coral bag.
|
||||
drab silver bags contain 3 light red bags.
|
||||
dull chartreuse bags contain 1 light lime bag, 3 drab bronze bags, 1 wavy turquoise bag.
|
||||
posh black bags contain 4 light brown bags.
|
||||
wavy crimson bags contain 4 shiny coral bags, 5 dark aqua bags.
|
||||
dotted magenta bags contain 2 mirrored fuchsia bags, 3 pale purple bags, 5 shiny yellow bags.
|
||||
posh red bags contain 4 dark violet bags, 2 posh purple bags, 3 dim yellow bags, 1 shiny turquoise bag.
|
||||
dim violet bags contain 2 shiny orange bags, 5 bright bronze bags, 2 bright salmon bags, 1 striped bronze bag.
|
||||
drab salmon bags contain 3 dull violet bags, 3 posh brown bags, 4 posh beige bags, 2 mirrored gray bags.
|
||||
dotted silver bags contain 1 drab black bag.
|
||||
vibrant gold bags contain 2 clear crimson bags, 2 posh olive bags, 3 drab black bags, 5 vibrant gray bags.
|
||||
muted chartreuse bags contain 4 faded yellow bags, 2 posh red bags, 4 dotted gold bags.
|
||||
dark purple bags contain 4 mirrored lavender bags, 3 muted salmon bags.
|
||||
faded tomato bags contain 2 plaid gray bags, 4 muted tan bags, 1 wavy beige bag.
|
||||
pale magenta bags contain 5 pale tan bags, 1 posh brown bag, 5 drab gray bags.
|
||||
plaid orange bags contain 5 dull bronze bags, 2 faded beige bags, 3 vibrant white bags, 2 dull coral bags.
|
||||
faded red bags contain 5 dotted tan bags, 1 dull tan bag, 2 bright blue bags, 2 dark coral bags.
|
||||
pale plum bags contain 4 shiny cyan bags, 1 mirrored yellow bag, 2 muted violet bags.
|
||||
shiny gray bags contain 2 faded chartreuse bags, 2 shiny tomato bags, 4 bright tan bags.
|
||||
light teal bags contain 4 clear blue bags, 5 mirrored white bags, 2 pale olive bags.
|
||||
posh cyan bags contain 5 dim gray bags.
|
||||
vibrant yellow bags contain 4 drab olive bags.
|
||||
dull violet bags contain 4 dim gray bags, 5 posh olive bags.
|
||||
wavy olive bags contain 3 plaid olive bags.
|
||||
mirrored fuchsia bags contain 1 dull gray bag, 3 pale green bags, 1 clear bronze bag, 5 dark violet bags.
|
||||
posh brown bags contain 2 mirrored aqua bags, 2 clear chartreuse bags, 2 clear bronze bags.
|
||||
drab chartreuse bags contain 3 faded cyan bags, 4 faded olive bags, 5 muted beige bags, 4 clear blue bags.
|
||||
vibrant magenta bags contain 3 wavy plum bags.
|
||||
clear beige bags contain 4 striped salmon bags, 2 clear aqua bags.
|
||||
light orange bags contain 5 drab orange bags.
|
||||
dotted orange bags contain 3 plaid gray bags.
|
||||
muted orange bags contain 1 striped plum bag, 1 pale beige bag, 5 posh lavender bags.
|
||||
plaid plum bags contain 4 wavy magenta bags, 3 drab tan bags.
|
||||
mirrored brown bags contain 4 dim lavender bags, 5 pale lavender bags, 5 light silver bags, 2 shiny brown bags.
|
||||
shiny gold bags contain 4 muted violet bags, 3 dark lime bags.
|
||||
drab orange bags contain 2 clear turquoise bags, 4 dim cyan bags.
|
||||
dim aqua bags contain 3 faded maroon bags, 1 pale tomato bag, 5 dull crimson bags.
|
||||
plaid gray bags contain 4 posh lavender bags.
|
||||
striped turquoise bags contain 5 dotted bronze bags, 5 dark tomato bags, 5 faded olive bags, 5 shiny teal bags.
|
||||
plaid lime bags contain 2 mirrored yellow bags.
|
||||
shiny blue bags contain 5 dotted lavender bags, 1 plaid white bag, 3 dotted red bags.
|
||||
clear cyan bags contain no other bags.
|
||||
drab bronze bags contain 3 bright salmon bags, 3 drab cyan bags.
|
||||
wavy gold bags contain 3 clear blue bags, 2 shiny brown bags, 3 dotted lime bags, 4 shiny beige bags.
|
||||
light silver bags contain 4 striped coral bags, 4 shiny plum bags, 5 dark coral bags.
|
||||
faded violet bags contain 5 light brown bags, 4 clear blue bags, 1 pale orange bag, 1 mirrored gold bag.
|
||||
dim red bags contain 1 clear white bag, 4 clear blue bags, 1 light black bag, 3 dim violet bags.
|
||||
bright bronze bags contain 1 dotted lime bag.
|
||||
muted salmon bags contain 1 shiny beige bag, 5 dull cyan bags, 3 vibrant red bags, 3 vibrant purple bags.
|
||||
striped indigo bags contain 2 posh lavender bags.
|
||||
dull fuchsia bags contain 2 dim tomato bags, 1 wavy crimson bag, 3 mirrored tomato bags, 3 shiny cyan bags.
|
||||
dotted tan bags contain 4 pale orange bags, 2 shiny fuchsia bags, 3 pale indigo bags.
|
||||
vibrant bronze bags contain 5 dotted fuchsia bags, 4 light black bags, 1 dark salmon bag.
|
||||
dark coral bags contain 1 vibrant gray bag, 3 shiny brown bags.
|
||||
drab maroon bags contain 5 mirrored gold bags, 4 posh purple bags, 2 light brown bags.
|
||||
light white bags contain 4 light tan bags.
|
||||
plaid maroon bags contain 5 bright purple bags, 4 pale bronze bags.
|
||||
posh lavender bags contain 2 faded purple bags, 2 posh purple bags, 1 shiny plum bag.
|
||||
vibrant white bags contain 1 plaid silver bag, 5 bright cyan bags, 2 light crimson bags, 4 clear black bags.
|
||||
light gray bags contain 1 striped beige bag.
|
||||
striped maroon bags contain 2 posh bronze bags, 3 mirrored chartreuse bags, 2 dark green bags, 4 dull salmon bags.
|
||||
wavy cyan bags contain 2 dark coral bags.
|
||||
muted tan bags contain 4 dark bronze bags.
|
||||
mirrored lime bags contain 4 clear orange bags, 5 vibrant bronze bags.
|
||||
pale brown bags contain 4 shiny tan bags, 2 muted silver bags.
|
||||
light maroon bags contain 5 bright turquoise bags.
|
||||
bright salmon bags contain 4 faded orange bags.
|
||||
wavy tan bags contain 3 wavy magenta bags.
|
||||
muted bronze bags contain 2 posh red bags, 4 wavy cyan bags, 3 posh turquoise bags, 5 pale cyan bags.
|
||||
drab olive bags contain 1 dotted orange bag, 1 mirrored red bag, 4 dotted bronze bags, 3 light black bags.
|
||||
striped violet bags contain 4 drab blue bags, 5 plaid white bags, 3 posh red bags, 5 clear teal bags.
|
||||
muted maroon bags contain 4 pale blue bags, 2 dim magenta bags.
|
||||
shiny salmon bags contain 5 light purple bags.
|
||||
pale salmon bags contain 3 posh lavender bags, 2 pale aqua bags.
|
||||
clear teal bags contain 3 muted turquoise bags.
|
||||
muted purple bags contain 3 dim white bags.
|
||||
shiny magenta bags contain 1 mirrored aqua bag, 3 dark coral bags, 3 clear crimson bags, 2 drab maroon bags.
|
||||
clear black bags contain 4 wavy cyan bags, 4 striped coral bags, 2 shiny olive bags, 3 drab tomato bags.
|
||||
drab yellow bags contain 3 muted olive bags, 1 wavy gold bag, 5 mirrored aqua bags, 1 posh red bag.
|
||||
striped fuchsia bags contain 5 pale yellow bags, 3 posh plum bags, 4 plaid olive bags.
|
||||
plaid lavender bags contain 3 drab brown bags, 5 pale aqua bags.
|
||||
pale beige bags contain 4 dim gray bags, 3 shiny turquoise bags, 4 faded purple bags.
|
||||
dull beige bags contain 5 pale orange bags, 2 plaid salmon bags, 3 wavy cyan bags, 2 clear turquoise bags.
|
||||
clear bronze bags contain no other bags.
|
||||
dim tan bags contain 2 dotted plum bags.
|
||||
clear lavender bags contain 1 pale yellow bag.
|
||||
dull purple bags contain 5 shiny red bags, 3 shiny lime bags, 2 dim white bags, 3 dull chartreuse bags.
|
||||
dotted crimson bags contain 3 clear cyan bags, 5 dark red bags, 5 shiny tan bags.
|
||||
clear indigo bags contain 2 bright maroon bags, 5 posh green bags.
|
||||
posh magenta bags contain 5 dotted silver bags, 3 mirrored olive bags, 1 wavy cyan bag, 5 plaid purple bags.
|
||||
dark white bags contain 4 vibrant bronze bags, 2 striped bronze bags, 4 faded white bags, 4 light purple bags.
|
||||
mirrored violet bags contain 1 faded tan bag, 2 plaid fuchsia bags, 4 dim salmon bags.
|
||||
dim blue bags contain 2 bright turquoise bags, 5 light brown bags, 5 dull maroon bags.
|
||||
dim cyan bags contain 4 dotted lime bags.
|
||||
posh coral bags contain 2 dim yellow bags.
|
||||
muted white bags contain 1 pale yellow bag, 3 dull gray bags, 5 posh purple bags.
|
||||
plaid bronze bags contain 5 striped green bags, 4 plaid indigo bags, 4 posh coral bags.
|
||||
light chartreuse bags contain 5 posh turquoise bags.
|
||||
wavy white bags contain 2 striped lavender bags, 5 dull gray bags.
|
||||
mirrored gray bags contain 4 mirrored fuchsia bags, 5 wavy plum bags, 1 mirrored beige bag, 5 muted orange bags.
|
||||
plaid white bags contain 2 dark salmon bags.
|
||||
shiny fuchsia bags contain 5 clear blue bags, 3 pale orange bags.
|
||||
faded gold bags contain 2 clear chartreuse bags.
|
||||
vibrant plum bags contain 4 vibrant blue bags, 3 bright brown bags, 1 wavy magenta bag, 4 shiny red bags.
|
||||
pale black bags contain 3 drab indigo bags, 1 pale indigo bag.
|
||||
clear tomato bags contain 2 dotted indigo bags.
|
||||
muted lime bags contain 4 vibrant beige bags.
|
||||
muted tomato bags contain 3 wavy tomato bags, 3 pale brown bags, 3 dim yellow bags.
|
||||
muted aqua bags contain 1 shiny cyan bag, 3 dull lime bags, 2 vibrant red bags.
|
||||
light bronze bags contain 2 drab blue bags, 4 drab yellow bags, 5 wavy plum bags.
|
||||
dotted lavender bags contain 1 dim teal bag.
|
||||
striped cyan bags contain 2 pale bronze bags, 1 plaid green bag, 1 dark plum bag, 4 drab purple bags.
|
||||
muted plum bags contain 3 shiny green bags, 2 vibrant plum bags, 1 dim gold bag, 1 shiny orange bag.
|
||||
dark crimson bags contain 4 clear blue bags, 5 light purple bags.
|
||||
shiny lime bags contain 3 plaid beige bags.
|
||||
vibrant orange bags contain 3 striped olive bags, 1 muted olive bag.
|
||||
light lime bags contain 1 dotted red bag, 5 bright red bags.
|
||||
shiny olive bags contain 5 vibrant black bags, 2 dotted violet bags.
|
||||
wavy blue bags contain 2 dull blue bags, 4 dark violet bags.
|
||||
dark black bags contain 4 drab cyan bags.
|
||||
faded orange bags contain no other bags.
|
||||
mirrored magenta bags contain 2 bright crimson bags, 5 mirrored fuchsia bags, 4 plaid green bags, 4 plaid gold bags.
|
||||
dotted indigo bags contain 2 muted bronze bags, 5 dim coral bags.
|
||||
dark magenta bags contain 5 dull green bags, 1 faded indigo bag.
|
||||
bright fuchsia bags contain 5 drab beige bags.
|
||||
faded blue bags contain 1 mirrored salmon bag, 1 faded bronze bag.
|
||||
bright lavender bags contain 2 wavy beige bags, 2 dotted bronze bags.
|
||||
wavy fuchsia bags contain 5 dim teal bags, 3 shiny orange bags.
|
||||
striped gray bags contain 5 dark coral bags.
|
||||
light magenta bags contain 1 shiny turquoise bag, 3 light tan bags.
|
||||
dotted turquoise bags contain 1 dim gray bag, 5 drab red bags.
|
||||
dark turquoise bags contain 1 wavy black bag, 2 wavy violet bags, 1 faded yellow bag.
|
||||
vibrant gray bags contain no other bags.
|
||||
dark red bags contain 3 drab maroon bags.
|
||||
faded tan bags contain 3 mirrored fuchsia bags, 1 wavy brown bag.
|
||||
mirrored purple bags contain 4 clear cyan bags, 5 dark silver bags, 4 bright tomato bags.
|
||||
vibrant coral bags contain 3 shiny gold bags, 4 mirrored yellow bags, 2 pale aqua bags.
|
||||
wavy beige bags contain 5 dull plum bags.
|
||||
faded maroon bags contain 4 bright fuchsia bags, 4 muted green bags.
|
||||
bright red bags contain 4 posh olive bags, 5 mirrored aqua bags, 4 striped lavender bags, 3 pale tan bags.
|
||||
faded aqua bags contain 3 light black bags, 2 dull magenta bags.
|
||||
dim black bags contain 1 dim gray bag.
|
||||
pale fuchsia bags contain no other bags.
|
||||
vibrant chartreuse bags contain 3 muted red bags, 3 dull beige bags, 4 drab gray bags.
|
||||
pale gold bags contain 1 bright bronze bag, 1 pale magenta bag, 4 mirrored gray bags.
|
||||
clear maroon bags contain 4 dark salmon bags, 5 dull olive bags, 1 dotted fuchsia bag.
|
||||
light coral bags contain 5 posh salmon bags.
|
||||
light salmon bags contain 1 dull black bag, 5 shiny tan bags, 1 posh lavender bag, 2 vibrant tomato bags.
|
||||
pale coral bags contain 2 posh lavender bags, 4 drab magenta bags, 3 faded teal bags.
|
||||
vibrant maroon bags contain 2 pale orange bags, 3 plaid gray bags.
|
||||
bright aqua bags contain 3 shiny brown bags, 1 wavy olive bag.
|
||||
dark violet bags contain 5 mirrored beige bags, 3 clear blue bags.
|
||||
dotted aqua bags contain 1 drab tan bag.
|
||||
pale lavender bags contain 3 pale fuchsia bags.
|
||||
bright gray bags contain 2 mirrored yellow bags, 4 mirrored cyan bags, 1 dark tomato bag, 1 light silver bag.
|
||||
light tan bags contain 2 pale orange bags, 5 dark orange bags, 4 dotted tomato bags, 4 dim cyan bags.
|
||||
dull tan bags contain 1 dull green bag.
|
||||
posh bronze bags contain 1 muted turquoise bag, 5 vibrant gold bags, 2 muted indigo bags, 3 pale cyan bags.
|
||||
wavy brown bags contain 1 pale cyan bag, 3 mirrored fuchsia bags, 1 shiny plum bag, 5 drab black bags.
|
||||
pale green bags contain no other bags.
|
||||
shiny white bags contain 5 dull crimson bags, 5 pale magenta bags, 4 clear green bags.
|
||||
dull aqua bags contain 3 plaid lime bags, 3 striped purple bags, 2 clear olive bags.
|
||||
clear orange bags contain 5 drab brown bags.
|
||||
shiny teal bags contain 1 wavy gold bag, 4 muted bronze bags, 1 clear orange bag.
|
||||
dim bronze bags contain 2 muted turquoise bags, 4 muted tan bags, 2 striped crimson bags.
|
||||
light fuchsia bags contain 5 dark black bags, 4 mirrored crimson bags.
|
||||
pale gray bags contain 2 wavy maroon bags.
|
||||
clear fuchsia bags contain 1 pale indigo bag, 1 striped salmon bag.
|
||||
striped orange bags contain 3 striped turquoise bags, 4 dim violet bags, 5 dim crimson bags, 3 pale gray bags.
|
||||
drab turquoise bags contain 2 muted bronze bags, 2 clear cyan bags, 4 shiny beige bags, 2 shiny coral bags.
|
||||
wavy lavender bags contain 1 drab cyan bag, 1 drab orange bag, 1 wavy silver bag, 5 dim olive bags.
|
||||
plaid aqua bags contain 5 dim green bags, 3 drab crimson bags.
|
||||
striped magenta bags contain no other bags.
|
||||
shiny turquoise bags contain 1 clear cyan bag, 5 pale fuchsia bags, 4 dim gray bags.
|
||||
muted fuchsia bags contain 1 wavy crimson bag, 5 muted coral bags, 4 dark turquoise bags, 3 clear teal bags.
|
||||
clear turquoise bags contain 2 drab cyan bags, 1 striped magenta bag, 2 striped plum bags, 3 clear cyan bags.
|
||||
dark maroon bags contain 2 wavy gray bags, 1 dim coral bag, 3 shiny coral bags.
|
||||
pale olive bags contain 4 plaid silver bags, 2 dim tomato bags, 2 mirrored fuchsia bags.
|
||||
vibrant indigo bags contain 3 mirrored orange bags, 1 faded salmon bag, 1 vibrant maroon bag, 3 dotted teal bags.
|
||||
mirrored green bags contain 5 plaid lavender bags, 2 drab purple bags, 5 plaid red bags, 1 dim gold bag.
|
||||
wavy salmon bags contain 1 faded magenta bag.
|
||||
light purple bags contain 1 striped plum bag, 5 dull bronze bags, 1 posh purple bag.
|
||||
drab crimson bags contain 3 dark lime bags, 5 pale green bags, 2 shiny plum bags.
|
||||
dark silver bags contain 2 muted turquoise bags, 1 pale silver bag, 1 drab lavender bag.
|
||||
mirrored black bags contain 5 faded purple bags, 1 wavy violet bag, 4 dull gray bags.
|
||||
striped silver bags contain 5 dim white bags.
|
||||
dull white bags contain 4 drab crimson bags, 5 pale fuchsia bags, 1 shiny beige bag.
|
||||
faded yellow bags contain 5 plaid yellow bags, 4 faded silver bags, 2 dotted tomato bags, 3 mirrored gray bags.
|
||||
muted brown bags contain 2 drab yellow bags.
|
||||
dim maroon bags contain 3 dotted red bags, 2 dim coral bags, 1 posh blue bag.
|
||||
drab tomato bags contain 5 dotted bronze bags.
|
||||
muted red bags contain 1 dull violet bag, 3 muted gray bags, 3 plaid orange bags, 3 dark blue bags.
|
||||
pale tan bags contain 3 striped tan bags, 3 shiny coral bags, 1 posh gold bag, 2 posh green bags.
|
||||
striped teal bags contain 3 dim crimson bags, 1 dull cyan bag.
|
||||
drab blue bags contain 5 striped lavender bags, 3 dotted teal bags.
|
||||
muted cyan bags contain 3 striped bronze bags, 1 light silver bag.
|
||||
dim brown bags contain 5 muted violet bags, 5 shiny gray bags.
|
||||
posh lime bags contain 5 wavy salmon bags.
|
||||
wavy bronze bags contain 5 dotted fuchsia bags, 2 dark coral bags, 3 faded orange bags.
|
||||
light gold bags contain 2 bright turquoise bags, 4 dim indigo bags, 2 dark magenta bags.
|
||||
dotted cyan bags contain 2 vibrant maroon bags.
|
||||
muted black bags contain 1 plaid crimson bag, 3 faded silver bags, 1 mirrored magenta bag.
|
||||
drab gray bags contain 5 drab beige bags, 1 dim fuchsia bag.
|
||||
wavy black bags contain 3 striped gold bags, 2 posh green bags, 2 wavy teal bags, 2 shiny tan bags.
|
||||
bright yellow bags contain 2 plaid fuchsia bags, 3 clear bronze bags, 2 posh lavender bags.
|
||||
clear coral bags contain 5 muted turquoise bags, 1 dim black bag, 3 dull aqua bags.
|
||||
plaid yellow bags contain 2 dull white bags, 5 posh brown bags, 1 posh purple bag.
|
||||
dark brown bags contain 2 mirrored indigo bags, 2 dark cyan bags, 2 light chartreuse bags, 4 faded tan bags.
|
||||
drab cyan bags contain 2 mirrored beige bags, 5 dotted lime bags.
|
||||
bright indigo bags contain 1 faded purple bag.
|
||||
wavy tomato bags contain 4 pale beige bags, 2 striped magenta bags, 5 faded orange bags.
|
||||
light black bags contain 1 dim yellow bag, 2 plaid tan bags, 5 dim indigo bags.
|
||||
dim tomato bags contain 1 vibrant maroon bag, 4 striped tomato bags.
|
||||
dark gold bags contain 1 light crimson bag, 5 posh tomato bags, 1 drab indigo bag, 5 striped bronze bags.
|
||||
bright teal bags contain 1 muted fuchsia bag, 3 muted violet bags, 5 pale brown bags, 4 mirrored orange bags.
|
||||
dotted gold bags contain 3 plaid olive bags, 5 wavy purple bags, 3 dim silver bags, 3 vibrant tomato bags.
|
||||
bright coral bags contain 1 clear tan bag, 4 dark purple bags.
|
||||
drab lime bags contain 2 dull white bags.
|
||||
light cyan bags contain 5 drab turquoise bags, 5 bright blue bags.
|
||||
dark tomato bags contain 5 wavy maroon bags, 4 dim olive bags.
|
||||
shiny black bags contain 5 plaid aqua bags, 3 muted green bags, 2 dim coral bags.
|
||||
dotted coral bags contain 5 light magenta bags, 3 light beige bags, 1 dark black bag.
|
||||
drab magenta bags contain 5 mirrored gray bags, 3 clear cyan bags, 2 wavy teal bags, 5 wavy maroon bags.
|
||||
pale lime bags contain 2 dull crimson bags, 1 dark tomato bag.
|
||||
shiny maroon bags contain 3 wavy bronze bags, 1 dim green bag, 1 wavy maroon bag, 5 dark bronze bags.
|
||||
striped yellow bags contain 5 light magenta bags, 5 clear salmon bags.
|
||||
pale blue bags contain 4 dim coral bags.
|
||||
posh fuchsia bags contain 3 bright beige bags.
|
||||
posh purple bags contain 2 mirrored beige bags, 3 striped magenta bags, 1 faded purple bag, 5 pale green bags.
|
||||
dark indigo bags contain 5 dotted blue bags, 2 pale blue bags, 1 posh tomato bag.
|
||||
dotted violet bags contain 2 pale green bags, 3 wavy olive bags.
|
||||
posh indigo bags contain 1 faded purple bag, 2 bright salmon bags, 1 drab orange bag, 3 shiny olive bags.
|
||||
muted gray bags contain 5 dark red bags.
|
||||
mirrored aqua bags contain 1 striped tan bag.
|
||||
shiny coral bags contain 1 muted orange bag.
|
||||
vibrant purple bags contain 5 shiny red bags.
|
||||
bright maroon bags contain 1 wavy tomato bag, 3 faded purple bags, 4 plaid plum bags.
|
||||
clear salmon bags contain 1 wavy gray bag, 2 wavy silver bags.
|
||||
striped aqua bags contain 4 bright green bags.
|
||||
clear chartreuse bags contain 4 dark red bags, 4 clear blue bags, 1 mirrored fuchsia bag, 1 clear bronze bag.
|
||||
bright plum bags contain 3 striped magenta bags, 3 dull lavender bags, 4 dotted cyan bags.
|
||||
plaid blue bags contain 1 dark maroon bag.
|
||||
mirrored coral bags contain 5 mirrored blue bags.
|
||||
bright white bags contain 5 muted tomato bags, 4 dotted gray bags, 3 posh gold bags.
|
||||
faded crimson bags contain 2 pale maroon bags, 1 posh bronze bag, 3 pale red bags, 2 faded fuchsia bags.
|
||||
plaid salmon bags contain 2 vibrant maroon bags, 4 wavy plum bags.
|
||||
posh maroon bags contain 1 mirrored aqua bag.
|
||||
bright blue bags contain 5 plaid chartreuse bags, 2 dark aqua bags, 2 posh white bags.
|
||||
dull gray bags contain 2 pale fuchsia bags, 4 striped plum bags, 4 posh green bags.
|
||||
dotted fuchsia bags contain 1 mirrored gold bag, 4 dim yellow bags, 1 shiny gold bag, 5 light brown bags.
|
||||
striped gold bags contain 5 vibrant silver bags, 4 plaid silver bags.
|
||||
pale maroon bags contain 4 dark red bags.
|
||||
mirrored silver bags contain 4 light red bags, 5 dim green bags, 1 mirrored beige bag, 5 wavy cyan bags.
|
||||
plaid purple bags contain 4 drab tan bags, 1 posh gray bag, 4 mirrored chartreuse bags, 4 pale yellow bags.
|
||||
shiny beige bags contain 1 posh green bag, 4 clear cyan bags, 4 striped gray bags, 5 dark violet bags.
|
||||
mirrored chartreuse bags contain 5 vibrant silver bags.
|
||||
dull black bags contain 3 bright aqua bags.
|
||||
vibrant black bags contain 4 light purple bags, 1 drab brown bag.
|
||||
dark tan bags contain 2 mirrored salmon bags, 2 striped purple bags.
|
||||
dim plum bags contain 5 mirrored beige bags, 2 posh cyan bags, 1 posh tan bag, 2 striped brown bags.
|
||||
faded turquoise bags contain 3 plaid black bags, 2 muted olive bags, 3 clear gold bags, 4 mirrored white bags.
|
||||
shiny chartreuse bags contain 3 pale orange bags, 4 drab green bags, 3 drab salmon bags, 4 dark bronze bags.
|
||||
shiny lavender bags contain 5 faded lime bags, 3 drab olive bags, 4 muted turquoise bags.
|
||||
bright tan bags contain 3 dark tomato bags, 5 posh white bags, 4 pale green bags.
|
||||
faded olive bags contain 3 dull plum bags.
|
||||
vibrant teal bags contain 5 dotted fuchsia bags, 1 clear teal bag.
|
||||
bright black bags contain 5 striped coral bags, 1 dark salmon bag, 1 pale blue bag.
|
||||
plaid black bags contain 5 bright indigo bags, 3 striped gray bags, 2 posh blue bags.
|
||||
light plum bags contain 2 dark orange bags, 1 wavy black bag, 3 muted tomato bags, 5 dark fuchsia bags.
|
||||
mirrored crimson bags contain 2 light brown bags, 5 posh gold bags, 4 faded purple bags, 3 shiny beige bags.
|
||||
plaid turquoise bags contain 1 dark gold bag, 2 dim orange bags.
|
||||
clear blue bags contain 4 pale green bags, 5 striped magenta bags, 3 clear bronze bags, 2 dotted beige bags.
|
||||
pale teal bags contain 3 posh lavender bags, 5 dark lime bags, 1 mirrored gray bag, 1 dark aqua bag.
|
||||
shiny tomato bags contain 3 clear crimson bags, 2 dotted violet bags, 1 shiny brown bag.
|
||||
dotted beige bags contain no other bags.
|
||||
posh teal bags contain 2 muted purple bags.
|
||||
posh turquoise bags contain 1 wavy magenta bag.
|
||||
posh aqua bags contain 5 drab gold bags, 1 pale indigo bag, 1 plaid olive bag.
|
||||
drab black bags contain 1 dark coral bag, 1 clear teal bag.
|
||||
faded purple bags contain 3 vibrant gray bags.
|
||||
clear aqua bags contain 4 faded gold bags.
|
||||
striped red bags contain 3 clear teal bags, 3 faded aqua bags, 2 wavy black bags, 2 wavy silver bags.
|
||||
muted lavender bags contain 5 dark lime bags, 4 dotted teal bags.
|
||||
pale white bags contain 5 bright white bags, 2 striped blue bags, 1 plaid gold bag.
|
||||
drab aqua bags contain 2 dim cyan bags, 2 striped tomato bags, 4 posh green bags, 4 shiny aqua bags.
|
||||
dark olive bags contain 1 bright indigo bag, 4 pale blue bags.
|
||||
mirrored tan bags contain 1 bright black bag, 2 wavy orange bags, 2 striped green bags.
|
||||
wavy gray bags contain 4 muted gold bags, 1 dark lime bag, 4 pale indigo bags.
|
||||
dotted red bags contain 5 plaid tan bags, 4 vibrant purple bags, 2 dim green bags, 4 faded white bags.
|
||||
faded brown bags contain 2 shiny tomato bags, 2 mirrored yellow bags, 5 clear magenta bags, 1 muted orange bag.
|
||||
plaid brown bags contain 3 dark crimson bags, 1 plaid white bag, 2 pale indigo bags.
|
||||
dotted bronze bags contain 3 plaid olive bags.
|
||||
dim beige bags contain 2 faded aqua bags, 1 vibrant gold bag, 1 drab tomato bag, 2 wavy black bags.
|
||||
faded lime bags contain 4 bright lime bags.
|
||||
dark yellow bags contain 5 dim crimson bags.
|
||||
posh salmon bags contain 3 dark bronze bags, 5 drab aqua bags, 4 mirrored gold bags, 5 mirrored aqua bags.
|
||||
dull blue bags contain 5 dotted violet bags, 2 pale gold bags.
|
||||
posh violet bags contain 5 pale lavender bags, 4 shiny turquoise bags, 5 dark violet bags, 1 plaid gold bag.
|
||||
muted yellow bags contain 3 mirrored beige bags, 3 dim chartreuse bags.
|
||||
striped tomato bags contain 1 shiny plum bag, 2 plaid olive bags, 2 dark violet bags, 2 clear cyan bags.
|
||||
posh olive bags contain 4 light brown bags, 3 bright salmon bags, 5 muted gold bags, 5 clear bronze bags.
|
||||
pale cyan bags contain 3 muted violet bags, 2 dim gray bags, 4 dark lime bags, 3 faded purple bags.
|
||||
vibrant tan bags contain 3 vibrant purple bags.
|
||||
pale turquoise bags contain 5 wavy gold bags, 3 pale yellow bags.
|
||||
striped black bags contain 5 dim white bags.
|
||||
shiny violet bags contain 5 clear beige bags.
|
||||
dotted salmon bags contain 5 mirrored turquoise bags.
|
||||
striped olive bags contain 3 clear lavender bags.
|
||||
vibrant tomato bags contain 4 drab crimson bags, 3 drab orange bags, 1 striped aqua bag.
|
||||
vibrant silver bags contain 4 striped tomato bags, 4 dim gray bags.
|
||||
shiny bronze bags contain 1 dark aqua bag, 5 light plum bags, 5 mirrored gray bags.
|
||||
dull maroon bags contain 2 wavy violet bags.
|
||||
clear tan bags contain 4 clear chartreuse bags, 5 dim olive bags, 1 drab gray bag, 3 dull indigo bags.
|
||||
plaid fuchsia bags contain 1 bright fuchsia bag, 3 dull bronze bags.
|
||||
striped purple bags contain 5 vibrant maroon bags.
|
||||
wavy silver bags contain 3 dark coral bags, 5 shiny brown bags, 5 dark red bags, 2 muted gold bags.
|
||||
dim olive bags contain 5 dull bronze bags.
|
||||
bright olive bags contain 2 pale turquoise bags.
|
||||
vibrant blue bags contain 4 bright salmon bags, 1 dim gray bag.
|
||||
muted gold bags contain 3 dim gray bags, 1 mirrored gold bag, 2 mirrored beige bags.
|
||||
dotted teal bags contain 3 faded violet bags, 3 dull white bags.
|
||||
faded green bags contain 2 shiny green bags, 1 vibrant crimson bag, 5 light white bags, 4 dark red bags.
|
||||
bright beige bags contain 3 striped orange bags.
|
||||
dim gray bags contain no other bags.
|
||||
posh beige bags contain 5 posh white bags, 2 dull gray bags.
|
||||
wavy orange bags contain 1 faded brown bag.
|
||||
faded silver bags contain 3 shiny beige bags, 5 clear orange bags, 5 pale indigo bags.
|
||||
vibrant aqua bags contain 2 wavy beige bags, 4 shiny maroon bags, 4 muted red bags, 5 plaid crimson bags.
|
||||
dim yellow bags contain 3 clear blue bags.
|
||||
dim coral bags contain 5 striped gold bags, 2 dotted orange bags, 4 muted orange bags.
|
||||
mirrored white bags contain 5 dull black bags.
|
||||
clear brown bags contain 1 clear tan bag, 5 plaid silver bags, 3 clear teal bags.
|
||||
bright green bags contain 5 vibrant salmon bags.
|
||||
clear white bags contain 4 plaid white bags.
|
||||
plaid gold bags contain 1 vibrant black bag, 5 bright silver bags, 5 dark aqua bags.
|
||||
light aqua bags contain 1 dotted lime bag, 4 light coral bags, 2 light orange bags, 3 dotted maroon bags.
|
||||
mirrored tomato bags contain 1 vibrant gray bag, 3 dotted crimson bags, 4 plaid olive bags.
|
||||
wavy indigo bags contain 1 striped crimson bag, 5 dim brown bags, 2 mirrored coral bags.
|
||||
shiny crimson bags contain 2 dull lavender bags.
|
||||
muted coral bags contain 4 striped turquoise bags, 5 shiny cyan bags, 3 dull gray bags.
|
||||
dim lime bags contain 1 clear silver bag.
|
||||
dull lime bags contain 4 dotted red bags.
|
||||
dim indigo bags contain 2 striped tomato bags.
|
||||
bright brown bags contain 2 wavy cyan bags.
|
||||
dull gold bags contain 3 dotted turquoise bags, 4 muted salmon bags, 1 pale lavender bag, 2 muted lavender bags.
|
||||
wavy violet bags contain 4 plaid plum bags, 4 dim black bags.
|
||||
posh plum bags contain 3 dim yellow bags, 4 wavy olive bags.
|
||||
mirrored plum bags contain 4 muted gold bags, 3 vibrant red bags, 4 faded blue bags, 4 plaid tomato bags.
|
||||
dull teal bags contain 3 faded olive bags, 1 clear blue bag, 4 faded gold bags.
|
||||
dull crimson bags contain 2 mirrored white bags, 2 dull plum bags.
|
||||
wavy green bags contain 4 posh tan bags, 2 dotted indigo bags, 1 striped olive bag, 2 vibrant white bags.
|
||||
striped crimson bags contain 1 wavy turquoise bag, 5 posh green bags, 4 pale salmon bags, 4 vibrant maroon bags.
|
||||
drab white bags contain 3 pale green bags, 2 striped indigo bags.
|
||||
shiny aqua bags contain 4 muted lavender bags, 4 striped lavender bags, 1 posh turquoise bag.
|
||||
dark bronze bags contain 3 pale beige bags, 2 faded teal bags, 1 mirrored chartreuse bag.
|
||||
clear crimson bags contain 3 pale cyan bags.
|
||||
dotted white bags contain 4 mirrored black bags, 5 posh white bags.
|
||||
dim turquoise bags contain 3 drab indigo bags, 4 dotted lime bags, 4 plaid fuchsia bags, 4 dark blue bags.
|
||||
muted beige bags contain 3 dotted turquoise bags, 4 plaid turquoise bags.
|
||||
plaid silver bags contain 5 pale cyan bags, 2 wavy brown bags, 1 drab turquoise bag.
|
||||
striped coral bags contain 4 wavy gray bags, 5 faded purple bags.
|
626
2020/inputs/day_08
Normal file
626
2020/inputs/day_08
Normal file
@@ -0,0 +1,626 @@
|
||||
nop +346
|
||||
acc +44
|
||||
acc +15
|
||||
jmp +473
|
||||
acc +29
|
||||
acc -13
|
||||
jmp +525
|
||||
acc +22
|
||||
acc +13
|
||||
nop +265
|
||||
jmp +397
|
||||
jmp +39
|
||||
acc +39
|
||||
nop -1
|
||||
acc +36
|
||||
acc +25
|
||||
jmp +153
|
||||
nop +374
|
||||
jmp +27
|
||||
jmp +282
|
||||
jmp +1
|
||||
jmp +1
|
||||
jmp +15
|
||||
acc +33
|
||||
acc -3
|
||||
jmp +533
|
||||
acc +25
|
||||
acc -14
|
||||
acc -16
|
||||
jmp +245
|
||||
nop +567
|
||||
acc +7
|
||||
jmp +147
|
||||
acc +26
|
||||
acc +40
|
||||
acc -9
|
||||
jmp +295
|
||||
acc +14
|
||||
nop +388
|
||||
acc -1
|
||||
jmp -21
|
||||
nop +524
|
||||
nop +166
|
||||
nop +515
|
||||
jmp +18
|
||||
jmp +214
|
||||
acc +42
|
||||
nop -35
|
||||
acc +7
|
||||
jmp +492
|
||||
acc +14
|
||||
acc +48
|
||||
jmp +326
|
||||
acc +48
|
||||
acc -18
|
||||
acc -5
|
||||
jmp +343
|
||||
jmp +81
|
||||
acc +18
|
||||
acc +16
|
||||
acc +21
|
||||
jmp +355
|
||||
acc +48
|
||||
nop +358
|
||||
acc +49
|
||||
acc -2
|
||||
jmp +89
|
||||
acc +4
|
||||
jmp +171
|
||||
acc +6
|
||||
jmp +299
|
||||
acc -8
|
||||
jmp +150
|
||||
acc +41
|
||||
acc -9
|
||||
acc +48
|
||||
jmp +73
|
||||
jmp +523
|
||||
nop +471
|
||||
jmp +493
|
||||
acc -16
|
||||
nop +440
|
||||
acc +2
|
||||
acc +33
|
||||
jmp +117
|
||||
acc +3
|
||||
acc +34
|
||||
jmp +310
|
||||
acc +8
|
||||
jmp +197
|
||||
acc +26
|
||||
acc +47
|
||||
jmp +194
|
||||
nop +115
|
||||
jmp +259
|
||||
nop +456
|
||||
jmp +420
|
||||
nop +398
|
||||
jmp +235
|
||||
acc +44
|
||||
acc +47
|
||||
jmp +218
|
||||
jmp +1
|
||||
jmp +275
|
||||
acc +12
|
||||
jmp +434
|
||||
acc +50
|
||||
acc +10
|
||||
nop +361
|
||||
jmp +367
|
||||
acc -16
|
||||
acc +44
|
||||
jmp +96
|
||||
acc +9
|
||||
acc +38
|
||||
acc -15
|
||||
nop -31
|
||||
jmp -55
|
||||
nop +421
|
||||
acc +50
|
||||
acc +12
|
||||
jmp -64
|
||||
acc +33
|
||||
acc +25
|
||||
jmp +382
|
||||
acc +7
|
||||
jmp -22
|
||||
jmp +95
|
||||
acc +44
|
||||
acc +32
|
||||
acc +23
|
||||
jmp +1
|
||||
jmp +456
|
||||
acc +49
|
||||
jmp +15
|
||||
jmp +312
|
||||
acc +6
|
||||
jmp +216
|
||||
acc +7
|
||||
jmp +458
|
||||
jmp +465
|
||||
nop +372
|
||||
acc +35
|
||||
acc +32
|
||||
acc +13
|
||||
jmp -35
|
||||
acc +50
|
||||
nop +32
|
||||
jmp +143
|
||||
jmp +327
|
||||
acc +0
|
||||
nop -82
|
||||
nop -62
|
||||
acc +41
|
||||
jmp -81
|
||||
acc -10
|
||||
nop -106
|
||||
jmp +82
|
||||
acc +1
|
||||
acc +11
|
||||
jmp +124
|
||||
acc +25
|
||||
acc +17
|
||||
jmp -73
|
||||
nop +8
|
||||
acc +29
|
||||
acc +33
|
||||
acc +10
|
||||
jmp +123
|
||||
jmp +236
|
||||
acc +41
|
||||
jmp +370
|
||||
acc +17
|
||||
acc -13
|
||||
acc +35
|
||||
jmp -47
|
||||
nop +287
|
||||
acc +22
|
||||
jmp +38
|
||||
jmp +1
|
||||
nop -52
|
||||
nop -9
|
||||
acc +22
|
||||
jmp +253
|
||||
acc +12
|
||||
acc -18
|
||||
acc +21
|
||||
nop -69
|
||||
jmp +28
|
||||
acc +16
|
||||
jmp +392
|
||||
jmp +325
|
||||
jmp -74
|
||||
acc +34
|
||||
acc +47
|
||||
acc +41
|
||||
jmp +201
|
||||
nop +361
|
||||
acc +50
|
||||
jmp +30
|
||||
jmp -127
|
||||
nop -171
|
||||
jmp +349
|
||||
acc +11
|
||||
nop +156
|
||||
acc +1
|
||||
acc -18
|
||||
jmp +393
|
||||
acc -8
|
||||
jmp +1
|
||||
acc -17
|
||||
nop +188
|
||||
jmp +134
|
||||
acc -9
|
||||
acc -14
|
||||
jmp +206
|
||||
jmp -209
|
||||
jmp +1
|
||||
acc +49
|
||||
nop +112
|
||||
acc -4
|
||||
jmp -20
|
||||
acc +41
|
||||
jmp -145
|
||||
acc +8
|
||||
jmp +276
|
||||
acc +48
|
||||
jmp -5
|
||||
jmp -143
|
||||
acc +0
|
||||
jmp -161
|
||||
jmp +238
|
||||
acc +8
|
||||
jmp -134
|
||||
acc +34
|
||||
acc +10
|
||||
jmp +1
|
||||
nop +109
|
||||
jmp -100
|
||||
acc +41
|
||||
acc -4
|
||||
jmp -12
|
||||
acc +42
|
||||
acc +46
|
||||
acc -7
|
||||
acc +28
|
||||
jmp +85
|
||||
jmp +216
|
||||
jmp +364
|
||||
acc +0
|
||||
acc -6
|
||||
nop +331
|
||||
acc +33
|
||||
jmp +163
|
||||
acc +37
|
||||
acc +20
|
||||
acc +33
|
||||
acc +45
|
||||
jmp -159
|
||||
acc +34
|
||||
acc +10
|
||||
acc +48
|
||||
acc +10
|
||||
jmp +358
|
||||
acc -9
|
||||
jmp +276
|
||||
acc +27
|
||||
acc +45
|
||||
nop +129
|
||||
acc +32
|
||||
jmp +243
|
||||
acc +0
|
||||
acc -5
|
||||
jmp -24
|
||||
acc +44
|
||||
nop +307
|
||||
acc -18
|
||||
acc +13
|
||||
jmp +37
|
||||
acc +5
|
||||
nop -125
|
||||
nop -126
|
||||
acc -18
|
||||
jmp +186
|
||||
jmp -87
|
||||
jmp -262
|
||||
nop -20
|
||||
jmp -108
|
||||
acc +26
|
||||
acc +20
|
||||
jmp +193
|
||||
nop +185
|
||||
jmp +129
|
||||
acc +26
|
||||
jmp +122
|
||||
acc -8
|
||||
nop +143
|
||||
nop +166
|
||||
jmp -236
|
||||
acc +33
|
||||
jmp -139
|
||||
acc +38
|
||||
jmp +1
|
||||
acc +21
|
||||
acc +31
|
||||
jmp -79
|
||||
acc -13
|
||||
jmp -78
|
||||
acc +29
|
||||
jmp +160
|
||||
acc +48
|
||||
acc -8
|
||||
acc +28
|
||||
acc +15
|
||||
jmp -284
|
||||
jmp +25
|
||||
acc +24
|
||||
jmp +1
|
||||
jmp -92
|
||||
acc +22
|
||||
jmp +169
|
||||
acc -15
|
||||
acc +16
|
||||
acc +4
|
||||
jmp -85
|
||||
acc -18
|
||||
acc -19
|
||||
acc -2
|
||||
jmp -278
|
||||
acc +48
|
||||
jmp -195
|
||||
jmp -40
|
||||
jmp -110
|
||||
acc +47
|
||||
jmp -26
|
||||
acc +26
|
||||
nop -187
|
||||
acc +40
|
||||
acc +42
|
||||
jmp +167
|
||||
acc +50
|
||||
acc +36
|
||||
acc -14
|
||||
jmp -313
|
||||
nop -203
|
||||
jmp +227
|
||||
acc -15
|
||||
acc +22
|
||||
jmp -23
|
||||
acc +6
|
||||
acc +30
|
||||
acc +12
|
||||
jmp +69
|
||||
nop -212
|
||||
nop -105
|
||||
acc +12
|
||||
jmp -155
|
||||
nop +69
|
||||
acc -16
|
||||
jmp -68
|
||||
acc -18
|
||||
acc +35
|
||||
acc +34
|
||||
acc +6
|
||||
jmp -80
|
||||
acc +7
|
||||
acc +19
|
||||
acc -8
|
||||
jmp -94
|
||||
acc +12
|
||||
nop -148
|
||||
acc +33
|
||||
nop -41
|
||||
jmp -107
|
||||
acc +25
|
||||
acc +9
|
||||
nop +107
|
||||
jmp -44
|
||||
jmp +1
|
||||
jmp -254
|
||||
acc +10
|
||||
acc +0
|
||||
acc +37
|
||||
acc +33
|
||||
jmp +137
|
||||
nop +136
|
||||
jmp -225
|
||||
acc -4
|
||||
acc -17
|
||||
acc +39
|
||||
jmp -286
|
||||
jmp +150
|
||||
nop -380
|
||||
acc +34
|
||||
acc +16
|
||||
nop +146
|
||||
jmp +105
|
||||
jmp +119
|
||||
jmp -190
|
||||
acc +0
|
||||
nop +205
|
||||
nop -302
|
||||
jmp -17
|
||||
acc -4
|
||||
jmp -7
|
||||
jmp -14
|
||||
jmp -394
|
||||
acc +34
|
||||
acc -1
|
||||
acc +37
|
||||
acc -17
|
||||
jmp -312
|
||||
nop -180
|
||||
nop -139
|
||||
acc +21
|
||||
jmp -378
|
||||
acc +24
|
||||
acc +38
|
||||
jmp +129
|
||||
acc +26
|
||||
jmp +19
|
||||
acc +31
|
||||
jmp -190
|
||||
acc +29
|
||||
acc -5
|
||||
jmp +14
|
||||
nop +186
|
||||
acc +12
|
||||
acc +9
|
||||
acc -16
|
||||
jmp +9
|
||||
acc +2
|
||||
nop -382
|
||||
nop -284
|
||||
nop -377
|
||||
jmp -169
|
||||
jmp +129
|
||||
acc +49
|
||||
jmp -297
|
||||
acc +48
|
||||
acc +18
|
||||
acc +8
|
||||
jmp +170
|
||||
acc +12
|
||||
acc -4
|
||||
acc +28
|
||||
jmp -20
|
||||
acc -11
|
||||
jmp -363
|
||||
jmp +1
|
||||
acc +9
|
||||
acc +31
|
||||
jmp +31
|
||||
acc +36
|
||||
acc +42
|
||||
acc +2
|
||||
nop -131
|
||||
jmp -322
|
||||
acc +35
|
||||
acc +44
|
||||
acc +11
|
||||
acc +14
|
||||
jmp -213
|
||||
acc -16
|
||||
acc -15
|
||||
acc -5
|
||||
jmp -277
|
||||
acc -17
|
||||
jmp -252
|
||||
acc -19
|
||||
acc +31
|
||||
acc -16
|
||||
acc -5
|
||||
jmp +48
|
||||
jmp +1
|
||||
jmp -97
|
||||
acc +5
|
||||
jmp -382
|
||||
acc +26
|
||||
acc +41
|
||||
acc +31
|
||||
acc -2
|
||||
jmp -392
|
||||
acc +41
|
||||
jmp -124
|
||||
acc +45
|
||||
acc +24
|
||||
acc +10
|
||||
jmp -339
|
||||
acc +29
|
||||
acc -10
|
||||
acc -10
|
||||
acc +3
|
||||
jmp -456
|
||||
jmp -25
|
||||
acc +37
|
||||
acc +39
|
||||
acc -11
|
||||
acc -1
|
||||
jmp +106
|
||||
jmp -328
|
||||
jmp -489
|
||||
nop -111
|
||||
nop -458
|
||||
acc +31
|
||||
jmp -100
|
||||
acc -18
|
||||
jmp -258
|
||||
acc -17
|
||||
nop -46
|
||||
acc +43
|
||||
acc +45
|
||||
jmp -127
|
||||
jmp +34
|
||||
acc +33
|
||||
jmp -200
|
||||
nop -90
|
||||
acc +20
|
||||
jmp -271
|
||||
acc +41
|
||||
jmp -189
|
||||
acc -16
|
||||
nop -321
|
||||
acc +25
|
||||
acc -12
|
||||
jmp -62
|
||||
acc -1
|
||||
jmp +1
|
||||
acc +35
|
||||
acc +39
|
||||
jmp -184
|
||||
jmp -236
|
||||
nop -331
|
||||
acc +12
|
||||
jmp +78
|
||||
acc +15
|
||||
jmp -30
|
||||
acc -11
|
||||
jmp -117
|
||||
jmp -8
|
||||
jmp +9
|
||||
acc +2
|
||||
jmp -497
|
||||
acc +10
|
||||
acc +0
|
||||
acc -6
|
||||
jmp -155
|
||||
jmp -148
|
||||
jmp -95
|
||||
jmp -96
|
||||
jmp -249
|
||||
nop -277
|
||||
nop -411
|
||||
acc -13
|
||||
acc -2
|
||||
jmp -383
|
||||
acc -13
|
||||
jmp -110
|
||||
acc +13
|
||||
acc +16
|
||||
acc +5
|
||||
acc -2
|
||||
jmp -67
|
||||
acc +37
|
||||
jmp -491
|
||||
acc +35
|
||||
acc +34
|
||||
acc +32
|
||||
acc -2
|
||||
jmp -546
|
||||
acc -19
|
||||
jmp -322
|
||||
acc +48
|
||||
acc +18
|
||||
acc +35
|
||||
acc +8
|
||||
jmp -448
|
||||
acc +41
|
||||
acc -15
|
||||
acc +34
|
||||
acc +46
|
||||
jmp -50
|
||||
acc +12
|
||||
nop -184
|
||||
acc +14
|
||||
acc +38
|
||||
jmp -370
|
||||
jmp +10
|
||||
acc -14
|
||||
acc -16
|
||||
nop -259
|
||||
nop -300
|
||||
jmp -400
|
||||
acc +38
|
||||
acc +29
|
||||
acc +27
|
||||
jmp -175
|
||||
jmp -456
|
||||
acc +30
|
||||
jmp -308
|
||||
jmp -538
|
||||
jmp +1
|
||||
acc -16
|
||||
nop -127
|
||||
jmp -407
|
||||
acc +5
|
||||
jmp -57
|
||||
acc +21
|
||||
acc +3
|
||||
acc +42
|
||||
acc +43
|
||||
jmp -521
|
||||
acc -9
|
||||
acc +20
|
||||
nop -217
|
||||
jmp -15
|
||||
acc +37
|
||||
acc -12
|
||||
acc -18
|
||||
jmp +1
|
||||
jmp -465
|
||||
acc +37
|
||||
nop -577
|
||||
acc +8
|
||||
acc +43
|
||||
jmp +1
|
1000
2020/inputs/day_09
Normal file
1000
2020/inputs/day_09
Normal file
File diff suppressed because it is too large
Load Diff
108
2020/inputs/day_10
Normal file
108
2020/inputs/day_10
Normal file
@@ -0,0 +1,108 @@
|
||||
115
|
||||
134
|
||||
121
|
||||
184
|
||||
78
|
||||
84
|
||||
77
|
||||
159
|
||||
133
|
||||
90
|
||||
71
|
||||
185
|
||||
152
|
||||
165
|
||||
39
|
||||
64
|
||||
85
|
||||
50
|
||||
20
|
||||
75
|
||||
2
|
||||
120
|
||||
137
|
||||
164
|
||||
101
|
||||
56
|
||||
153
|
||||
63
|
||||
70
|
||||
10
|
||||
72
|
||||
37
|
||||
86
|
||||
27
|
||||
166
|
||||
186
|
||||
154
|
||||
131
|
||||
1
|
||||
122
|
||||
95
|
||||
14
|
||||
119
|
||||
3
|
||||
99
|
||||
172
|
||||
111
|
||||
142
|
||||
26
|
||||
82
|
||||
8
|
||||
31
|
||||
53
|
||||
28
|
||||
139
|
||||
110
|
||||
138
|
||||
175
|
||||
108
|
||||
145
|
||||
58
|
||||
76
|
||||
7
|
||||
23
|
||||
83
|
||||
49
|
||||
132
|
||||
57
|
||||
40
|
||||
48
|
||||
102
|
||||
11
|
||||
105
|
||||
146
|
||||
149
|
||||
66
|
||||
38
|
||||
155
|
||||
109
|
||||
128
|
||||
181
|
||||
43
|
||||
44
|
||||
94
|
||||
4
|
||||
169
|
||||
89
|
||||
96
|
||||
60
|
||||
69
|
||||
9
|
||||
163
|
||||
116
|
||||
45
|
||||
59
|
||||
15
|
||||
178
|
||||
34
|
||||
114
|
||||
17
|
||||
16
|
||||
79
|
||||
91
|
||||
100
|
||||
162
|
||||
125
|
||||
156
|
||||
65
|
92
2020/inputs/day_11
Normal file
92
2020/inputs/day_11
Normal file
@@ -0,0 +1,92 @@
|
||||
LLLLL.LLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLL.LLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLL.L.LLLL.LLL.L.LLLLL
|
||||
LLLLLLLLL.LLLLLL.L.LLLLLL.LLLLLLLLL.LLLL...LLLLLL.LLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLL.LLLLL
|
||||
LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLL.L.LLLLLL.LLLLLLLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLL..LLLLLL.LLLLLLLLLLLLLLLLL..LLLLLL.LLLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLL.LLLLLLL.LL.LLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL..LLLLLLLLLLLLL.LLLL.LLLLLLLLLLL
|
||||
LLLLLLLLL.LLLLLLL.L.LLLLL.LLLLLLLLL.LLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
L.LL...L..L.L...L...L..L...L.....L....LL..L.LLLL..LL.LL..LLL.L..LL....L..L....L...LL..LL.......L.
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLL..LLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLL.LLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.L.LLLLL.L.LLL.L.LLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL
|
||||
LL..LLL......LLL.L...L.....L.....L.L.L..L.L.L.LLL.L.L.LLL....L...LL..L..L.L.LL......L.....LL.L...
|
||||
LLLLLLLLL.LLLLLL.LLLLLLL..LLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLL.LLLLL.LLLLL.LL.LLLL.LLLLL.LLLLL
|
||||
LLLLLLL.L.LLLLLL.LLLLLLLL.LLLLLLLLL.LLL.L.LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LL.LLLLLLLLLLLLLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLL.LLLL.LLLLLLLL.LLLLLLLLLL.L..LLLLLLLLLLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
LLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.L.LLLLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLL.L.LLL
|
||||
LLL.LLL.L.LL....L.....LL..L........L.LL.L...LLL.L...L.......L.L.L.L....LL...L.LLL........LL.....L
|
||||
LLLLLLLLL.LL.LLLLL.LLLLLLLLLLLLLLLL.LLLLL.LLLLLLL..LLLLL..LLLLLLL.L.LLL.LLLLLLLL.LL.L.LLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLL.LLLLL.LLLLLLL.LLLL.LL.LLLLL.LLLLLLL..LLLLLLL.LLLLLLLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLL.LL.LLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL.LLL.LLLLLL.LLLLL.LLLLL
|
||||
L.LLLLLLL.LLLLLL.LL.LLLLL.LLLL.LLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLL.LLLLLLL.LLLLL.LLL...L.LLLLL.LLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLLLLLLLLL.L.LLL.LLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLL.LLLLLLL.LLLLLLL.LL.LLLLLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.L.LLLLLLLL..LLLLLLL.LLL.L.L.LLLLL.LL.LLLLL.LLLLLLLL.L.LLLLL
|
||||
LLLLL.LLL.LLLLLLLL.LLLLLL.LLLLLLLLL.LLL.L.LLLLLLL.LLLLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLLLLLLLL
|
||||
.L..LL...L....L..LL..LLLL......L.L..L.L.LL....L.L..L..L....L....LL..L.L..L.L.L..L..L.LL.L...L....
|
||||
LLLLLLLLLLLLLLL.LLLLL.LLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLL..LLLLLLL.LLLL.LLL.L.LLL.L
|
||||
LLLLLLLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLL..LLLLL.LLLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLL.LL.LLLLLLL.LLLLL.LLLL.LLLLLLLLLL.LLLLLLLLL.LLL.LLLLLLLLLLLLL.LLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLL.L.LLLLLLLLL.LLLLL.LLLLLLL.LLLLLLL.LLLLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLL..LLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
..L..L.L..L..LL..LLL.L..L..LL.L...LL.L.L..LL.L.LL.L....LLL..LLL..LLL.L.L...LL.LL.LL...L..L...L.LL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLL.LLL.LLL.LLLLLLLLLLLLL.LLLLL.LL..LLL.LLLLL.L.LLL
|
||||
LLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLLLLLLLLLLLL.LLL.LLL.LLLL.LLLLLLLL.L.LLLLL
|
||||
LLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLLL.LLLLL.LLLLL.LLLLLLLLL.L.LLLLLLLLLLL.LLLLLLLL.LLL.LL.LLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLL.LLLL.
|
||||
.LLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLL
|
||||
....L...L.....L..L...LL.L....L......L.....L..LL...L.......L....L.....L.L..L...L..........LL.LL...
|
||||
LLLLL.LLL.LLLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL..LLLLL.LLLLLLLL.LLLLLLLLLLLLLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLL.LL.LLLLLLL..LLLLLLLLLLLLL.LLLLL.LLLL.LLLLL
|
||||
LLLLLLLLL.L.LLLLLLLLLLLLL.LLLLLLLLL.L..LLLLLLLLLL.LLLLLLLLLLLLL.L.LLLLLLLLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
LLLL.LL.L.LLLLLL.LLLLLLLL.LLLL.LLLL..LLLL.LLLLLLL..LLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLLLLLLLL
|
||||
LLLLLL.LLLLLLLLLLLLLL.LLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL
|
||||
L.LLLLLLLLLLLLLL.LLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLL.LL.LLLLLLLLLLLLLLLLLLL.LLLLL.LLLLL
|
||||
LLLLLLLL..LLLLLL.LLLLLLLLLLLLLLLL.L.LLLLL.LLLLLLLLLLLLLLL.LLLLLLL..LLLLLLLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
L...LLL.L..LL..L.LLL.....L......L...LLL..L....LLL..L...L...........L..L..L...LL.LL.L...LL.LLLLLL.
|
||||
.LLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLL....LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLL.LLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLL.L.LLLLL.LLLLL.LLLLL.LLLLLLLLLLLLL.LLLLL
|
||||
LLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLLLLLL.LLL.LLLLL.LLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
LLLLLLLL..LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.L.LLLL..LLLLLLL.LLLLLLL.LLLLL.LLL.LLLL.LLLL.LLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLLL.LL.LLLLLLLLLLLL.LLLLLLLL.LLLLLLLL.LLLL.LLL.LLLLLLL
|
||||
LL.LLLLLL.L.LLLLLLLLLLL.L.LLLLLLLLL.LLLLLLLLLLLLL.L.LLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLL.L.LLLLLLLLL
|
||||
....LLL.LL.....LLLLL...........LLLL.L..L.L..L.L.L...L.LL...LL.LLL.LL....LLLL....L.L.......L...L.L
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLL.LL.LL.LLLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLL.LLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.L.LLLLL.LLLLL
|
||||
LLLLL.LLL.LLLLLLLLLLLL.LLL.LLLLLL.L.LL.LL.LLLL.LL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLL.
|
||||
..L.L.LL........L.L...LL.LLL...L....LL......L.......LL.......L.L...L..LL.L..LL.L.L.L..L..........
|
||||
LLLLLLLLL.LLLLLL.LLL.LLLL.LLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLL..LLLL.L.LLLLLL.LLLL.LLLLLLLLLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LL.LLLLLLLLLL..LLLL.L.LLL.LLLLL
|
||||
L.LLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLL.LL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLL.LLLLL
|
||||
LLLLLLLLLLLLLL.L.LLLLLLLL.LLLLLLLLL.LLLLL.LLLLL.L.LLLLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLL.LLLLL
|
||||
LLLLLLLLLLLLLLLLLLLLLLL.L.LLLLLLLLLL.LLLL.LLLLLLL.LLLLLLL.L.LLLLL.LLLLL..LLLLLL..LLLL.LLLLL.LLLLL
|
||||
LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLL.LLLL.LLLLL.LLLLL
|
||||
.LLLLLLLL..LLLLLLLLLLLLLL....LLLL.L.LLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLL.LL.LL.LLLLL
|
||||
LL.LLLLLL.LLL.LLLLLLL..LLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLL.LLLLLLL..LLLL.LLLLLLLLLLLLL.LLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.L.LLLLL.LLLLLLL.LLLLLLL.LLLLL.LLLLLLLLLLLLL.LLLLL.LLLLL
|
||||
.......L...L..L.L...L..LL..LL..L.....L..LL..L.L.L.....L.....L..L..LL.L..L..L.LL...LL..L.....L.L..
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLL.LLLL.LL.LLLLL.LLLLLLLLLLLLLLLLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLL..LLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.L.LL.LLLLL.L.LLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLLLLLLL.LLLL.LLLLL.LLLL.LLLLLLLLLLLLLLLLLL.L.LLL.LLLLLLLL.LLLL.LLLLLLLLLLL
|
||||
L.LLLLLLLLLLL.LL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLL.L.LLLLLL.LLLLLLLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLL.LLL.LLLLLLLLL.LLLLL.LLLLLLL.LLLLLLL.LLLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLL.LLLLL.LLLL.LL..LLL.LL.LL.LLLL.LLL.LLLLLLLLLL.LLLL.LLL.LLLLLLL
|
||||
LLLL.LLL..LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLLLLLL.LLLLLLL..LLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLL..LL.L
|
||||
.L......L....LLLL.......L.L...LL...L.L..L..L..LL..L.....L......LL..LL...L...L....L.L..L...LL.L.L.
|
||||
L.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LL.LLLLLLL.LLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LL.L.LL.LLLLLLLL
|
||||
LLLL.LLLLLLLLLLL.LLLLLLLL.LL.LLLLL..LLLLL.LLLLLLL.L.LLLLL.LLLLLLL.LLLLL.LL.LLLLL.LLLLLLLLLL..LLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLL.LL.LLLLL.LLLLLLLLLLLLLLL.LLLLLLL...LLL.LLLLLLLL.LLLL.LLLLLLLLLLL
|
||||
LLLLLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLL.LLLLL.L.LLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLL.L.LLLL.LLLLL.LLLLL
|
||||
LLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLLLLLLLLLLLL.LLLL..LLLL.LLLLL
|
||||
LLLLLLLLL.LLLLLL.LLLLLLLL.LLL.LLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLL.LL.LL
|
||||
LLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLL.LLLLLLL.LLLLLLL.LLLLL.LLLLLLLL.LLLL.LLLLLL.LLLL
|
||||
LLLLLLLLLLLLLLLL.LLLLLLL..LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.L..LLLL.L.LLLLL..LLLL.LLLLL.LLLLL
|
789
2020/inputs/day_12
Normal file
789
2020/inputs/day_12
Normal file
@@ -0,0 +1,789 @@
|
||||
R180
|
||||
S4
|
||||
L90
|
||||
S2
|
||||
R90
|
||||
W3
|
||||
F30
|
||||
R90
|
||||
W3
|
||||
L90
|
||||
F68
|
||||
L90
|
||||
E5
|
||||
F88
|
||||
S1
|
||||
L90
|
||||
F46
|
||||
W5
|
||||
F51
|
||||
S2
|
||||
L90
|
||||
F53
|
||||
S5
|
||||
F19
|
||||
W2
|
||||
L90
|
||||
F91
|
||||
E2
|
||||
S3
|
||||
F83
|
||||
N5
|
||||
F79
|
||||
W1
|
||||
S3
|
||||
F11
|
||||
E4
|
||||
F53
|
||||
W4
|
||||
S5
|
||||
R90
|
||||
E1
|
||||
F76
|
||||
R90
|
||||
F47
|
||||
E5
|
||||
R90
|
||||
W3
|
||||
R90
|
||||
S5
|
||||
L180
|
||||
W5
|
||||
N4
|
||||
F10
|
||||
S2
|
||||
R90
|
||||
S4
|
||||
W4
|
||||
F29
|
||||
S5
|
||||
F34
|
||||
E2
|
||||
S4
|
||||
R90
|
||||
F73
|
||||
N2
|
||||
F43
|
||||
W1
|
||||
N4
|
||||
R90
|
||||
S3
|
||||
F26
|
||||
S5
|
||||
W1
|
||||
N5
|
||||
R90
|
||||
W3
|
||||
F29
|
||||
R90
|
||||
W4
|
||||
F81
|
||||
R90
|
||||
E5
|
||||
S4
|
||||
W1
|
||||
F73
|
||||
N2
|
||||
E1
|
||||
F66
|
||||
L90
|
||||
E4
|
||||
S4
|
||||
E3
|
||||
N2
|
||||
F34
|
||||
L90
|
||||
W1
|
||||
F13
|
||||
S4
|
||||
E2
|
||||
F21
|
||||
N5
|
||||
E5
|
||||
N2
|
||||
F65
|
||||
L90
|
||||
N3
|
||||
R270
|
||||
F49
|
||||
E5
|
||||
L90
|
||||
E5
|
||||
R90
|
||||
F20
|
||||
S4
|
||||
F99
|
||||
W3
|
||||
N2
|
||||
E5
|
||||
L90
|
||||
F94
|
||||
R90
|
||||
S2
|
||||
R90
|
||||
S3
|
||||
F47
|
||||
S3
|
||||
R90
|
||||
F71
|
||||
W1
|
||||
R90
|
||||
N4
|
||||
E5
|
||||
S1
|
||||
F72
|
||||
L90
|
||||
F18
|
||||
E5
|
||||
F94
|
||||
L270
|
||||
F80
|
||||
W5
|
||||
R180
|
||||
N1
|
||||
F40
|
||||
R180
|
||||
N1
|
||||
E3
|
||||
N5
|
||||
F29
|
||||
R90
|
||||
E1
|
||||
R90
|
||||
E3
|
||||
L180
|
||||
E3
|
||||
R90
|
||||
S2
|
||||
L90
|
||||
E3
|
||||
L180
|
||||
F80
|
||||
E2
|
||||
S5
|
||||
E1
|
||||
N2
|
||||
L180
|
||||
F25
|
||||
N2
|
||||
L90
|
||||
F66
|
||||
R90
|
||||
F48
|
||||
N3
|
||||
L180
|
||||
N3
|
||||
R90
|
||||
E5
|
||||
R90
|
||||
F52
|
||||
R180
|
||||
S5
|
||||
L270
|
||||
S4
|
||||
L90
|
||||
F53
|
||||
S4
|
||||
W3
|
||||
W4
|
||||
F36
|
||||
W2
|
||||
N2
|
||||
N4
|
||||
L90
|
||||
W1
|
||||
R90
|
||||
E4
|
||||
F30
|
||||
N5
|
||||
W1
|
||||
S2
|
||||
W5
|
||||
F98
|
||||
W1
|
||||
N1
|
||||
F92
|
||||
L180
|
||||
N2
|
||||
R90
|
||||
S4
|
||||
L90
|
||||
F66
|
||||
N3
|
||||
L90
|
||||
F33
|
||||
W2
|
||||
S2
|
||||
E4
|
||||
F8
|
||||
W2
|
||||
L180
|
||||
F15
|
||||
S1
|
||||
E1
|
||||
F14
|
||||
S1
|
||||
W2
|
||||
L270
|
||||
F86
|
||||
E1
|
||||
R180
|
||||
W5
|
||||
R90
|
||||
N3
|
||||
L90
|
||||
N5
|
||||
E1
|
||||
F78
|
||||
N1
|
||||
L90
|
||||
F1
|
||||
F73
|
||||
R90
|
||||
F68
|
||||
W4
|
||||
F79
|
||||
F34
|
||||
N5
|
||||
R180
|
||||
E5
|
||||
L180
|
||||
S3
|
||||
W5
|
||||
F27
|
||||
R180
|
||||
F70
|
||||
R90
|
||||
S4
|
||||
F62
|
||||
L180
|
||||
N3
|
||||
R90
|
||||
S5
|
||||
F4
|
||||
R90
|
||||
S5
|
||||
W2
|
||||
N5
|
||||
R90
|
||||
F81
|
||||
L90
|
||||
N1
|
||||
F32
|
||||
E2
|
||||
N1
|
||||
W2
|
||||
L180
|
||||
E5
|
||||
R180
|
||||
S3
|
||||
E3
|
||||
R90
|
||||
S3
|
||||
F1
|
||||
N5
|
||||
E3
|
||||
F60
|
||||
W2
|
||||
F58
|
||||
L180
|
||||
S2
|
||||
E3
|
||||
L90
|
||||
F36
|
||||
L90
|
||||
E4
|
||||
E1
|
||||
F29
|
||||
W2
|
||||
R90
|
||||
R180
|
||||
N3
|
||||
L90
|
||||
R180
|
||||
S5
|
||||
W1
|
||||
F13
|
||||
R90
|
||||
W5
|
||||
S2
|
||||
R180
|
||||
F16
|
||||
W4
|
||||
L90
|
||||
W2
|
||||
S5
|
||||
F25
|
||||
R90
|
||||
F40
|
||||
L90
|
||||
L90
|
||||
F76
|
||||
S2
|
||||
R180
|
||||
N2
|
||||
R180
|
||||
W4
|
||||
S5
|
||||
F61
|
||||
N4
|
||||
E1
|
||||
F57
|
||||
E5
|
||||
F72
|
||||
W4
|
||||
F61
|
||||
R90
|
||||
S4
|
||||
F52
|
||||
W2
|
||||
N1
|
||||
F30
|
||||
L90
|
||||
F59
|
||||
N1
|
||||
L90
|
||||
W2
|
||||
N2
|
||||
F51
|
||||
E5
|
||||
F16
|
||||
S1
|
||||
W3
|
||||
L90
|
||||
F92
|
||||
E3
|
||||
N2
|
||||
F22
|
||||
L180
|
||||
N3
|
||||
F10
|
||||
E4
|
||||
N2
|
||||
F43
|
||||
R90
|
||||
F99
|
||||
S3
|
||||
R180
|
||||
E1
|
||||
S1
|
||||
W2
|
||||
L180
|
||||
F56
|
||||
N3
|
||||
F6
|
||||
N4
|
||||
F21
|
||||
L90
|
||||
N4
|
||||
L180
|
||||
N4
|
||||
F15
|
||||
E5
|
||||
S3
|
||||
W1
|
||||
F57
|
||||
E3
|
||||
S4
|
||||
W3
|
||||
L90
|
||||
S3
|
||||
L90
|
||||
F41
|
||||
E1
|
||||
S5
|
||||
L90
|
||||
F63
|
||||
N4
|
||||
F89
|
||||
F57
|
||||
S1
|
||||
L90
|
||||
S4
|
||||
L180
|
||||
F96
|
||||
L180
|
||||
N5
|
||||
E4
|
||||
L90
|
||||
E1
|
||||
S1
|
||||
F77
|
||||
S3
|
||||
L90
|
||||
E4
|
||||
L90
|
||||
E5
|
||||
L90
|
||||
N3
|
||||
L180
|
||||
S1
|
||||
N2
|
||||
L90
|
||||
N3
|
||||
R90
|
||||
F45
|
||||
R180
|
||||
F57
|
||||
N3
|
||||
R90
|
||||
E4
|
||||
L180
|
||||
F37
|
||||
L90
|
||||
W2
|
||||
R90
|
||||
S1
|
||||
R90
|
||||
N3
|
||||
F77
|
||||
W5
|
||||
F80
|
||||
S1
|
||||
S5
|
||||
R90
|
||||
N5
|
||||
E5
|
||||
S3
|
||||
L270
|
||||
F15
|
||||
L180
|
||||
W5
|
||||
F48
|
||||
E1
|
||||
L180
|
||||
S4
|
||||
E1
|
||||
S4
|
||||
W5
|
||||
F76
|
||||
S1
|
||||
E1
|
||||
S1
|
||||
F55
|
||||
L90
|
||||
F70
|
||||
R180
|
||||
R90
|
||||
E4
|
||||
R90
|
||||
S3
|
||||
E2
|
||||
S3
|
||||
F84
|
||||
S4
|
||||
W3
|
||||
F100
|
||||
R90
|
||||
S1
|
||||
L90
|
||||
F37
|
||||
W4
|
||||
F3
|
||||
R180
|
||||
N3
|
||||
R90
|
||||
L90
|
||||
W2
|
||||
F28
|
||||
R270
|
||||
N5
|
||||
R180
|
||||
S2
|
||||
E4
|
||||
F54
|
||||
L90
|
||||
W5
|
||||
R90
|
||||
F79
|
||||
N3
|
||||
R90
|
||||
F34
|
||||
W1
|
||||
N3
|
||||
F76
|
||||
W3
|
||||
F2
|
||||
W1
|
||||
L90
|
||||
R90
|
||||
F72
|
||||
N1
|
||||
E3
|
||||
F79
|
||||
W1
|
||||
L90
|
||||
F8
|
||||
E4
|
||||
F87
|
||||
E2
|
||||
F4
|
||||
S3
|
||||
L90
|
||||
F100
|
||||
F94
|
||||
E4
|
||||
R270
|
||||
S1
|
||||
E2
|
||||
F70
|
||||
E4
|
||||
L90
|
||||
S2
|
||||
W5
|
||||
L90
|
||||
S5
|
||||
W2
|
||||
S2
|
||||
W5
|
||||
F19
|
||||
E2
|
||||
E1
|
||||
F62
|
||||
L90
|
||||
F55
|
||||
E3
|
||||
R180
|
||||
F74
|
||||
S3
|
||||
W2
|
||||
F66
|
||||
L180
|
||||
F32
|
||||
W5
|
||||
F66
|
||||
W1
|
||||
F48
|
||||
S3
|
||||
R90
|
||||
N5
|
||||
W2
|
||||
N2
|
||||
F18
|
||||
E3
|
||||
F41
|
||||
L90
|
||||
N4
|
||||
F56
|
||||
L90
|
||||
R90
|
||||
F42
|
||||
R90
|
||||
S3
|
||||
L90
|
||||
E2
|
||||
S2
|
||||
F7
|
||||
W3
|
||||
N5
|
||||
L180
|
||||
L90
|
||||
L90
|
||||
N5
|
||||
L90
|
||||
W4
|
||||
F82
|
||||
W2
|
||||
F68
|
||||
S1
|
||||
E3
|
||||
S2
|
||||
F87
|
||||
L90
|
||||
F93
|
||||
L90
|
||||
F16
|
||||
L90
|
||||
S4
|
||||
L90
|
||||
N3
|
||||
E2
|
||||
R90
|
||||
S2
|
||||
R180
|
||||
F94
|
||||
W1
|
||||
S3
|
||||
F68
|
||||
S2
|
||||
F70
|
||||
S3
|
||||
W4
|
||||
F29
|
||||
E5
|
||||
R180
|
||||
S2
|
||||
F63
|
||||
L180
|
||||
F65
|
||||
R90
|
||||
W1
|
||||
F64
|
||||
E1
|
||||
L180
|
||||
L90
|
||||
S5
|
||||
F65
|
||||
L90
|
||||
N3
|
||||
N4
|
||||
L270
|
||||
S1
|
||||
E2
|
||||
S3
|
||||
W3
|
||||
N1
|
||||
E5
|
||||
F16
|
||||
E2
|
||||
L90
|
||||
N1
|
||||
L90
|
||||
E1
|
||||
S4
|
||||
W2
|
||||
R180
|
||||
F27
|
||||
N1
|
||||
R180
|
||||
E2
|
||||
L90
|
||||
F20
|
||||
N1
|
||||
W3
|
||||
N1
|
||||
R90
|
||||
W5
|
||||
R90
|
||||
E3
|
||||
S2
|
||||
F48
|
||||
N1
|
||||
R180
|
||||
N3
|
||||
W1
|
||||
S4
|
||||
F92
|
||||
S3
|
||||
R90
|
||||
S5
|
||||
E1
|
||||
W5
|
||||
R90
|
||||
S2
|
||||
W1
|
||||
L90
|
||||
R180
|
||||
E3
|
||||
N3
|
||||
E1
|
||||
R180
|
||||
E4
|
||||
L90
|
||||
E5
|
||||
L90
|
||||
W3
|
||||
L270
|
||||
E1
|
||||
S5
|
||||
W5
|
||||
L180
|
||||
W3
|
||||
S2
|
||||
F16
|
||||
W5
|
||||
S4
|
||||
R90
|
||||
N3
|
||||
L90
|
||||
N4
|
||||
F43
|
||||
N2
|
||||
F83
|
||||
S2
|
||||
W5
|
||||
F58
|
||||
W4
|
||||
N5
|
||||
R180
|
||||
E3
|
||||
F81
|
||||
L90
|
||||
F61
|
||||
L90
|
||||
W4
|
||||
F41
|
||||
E3
|
||||
N2
|
||||
F74
|
||||
R90
|
||||
F6
|
||||
R90
|
||||
W1
|
||||
F18
|
||||
R90
|
||||
R90
|
||||
N2
|
||||
F87
|
||||
S4
|
||||
F16
|
||||
S3
|
||||
E3
|
||||
F67
|
||||
R90
|
||||
E2
|
||||
L90
|
||||
S4
|
||||
R90
|
||||
F5
|
||||
W1
|
||||
R90
|
||||
W4
|
||||
F54
|
||||
S1
|
||||
W1
|
||||
F100
|
||||
S5
|
||||
E2
|
||||
L90
|
||||
W3
|
||||
F61
|
||||
L180
|
||||
W2
|
||||
S3
|
||||
F68
|
||||
F35
|
||||
N3
|
||||
R180
|
||||
E4
|
||||
R270
|
||||
S5
|
||||
E4
|
||||
L180
|
||||
S3
|
||||
R90
|
||||
N5
|
||||
E4
|
||||
F60
|
||||
W4
|
||||
S1
|
||||
L90
|
||||
L180
|
||||
N5
|
||||
L180
|
||||
W3
|
||||
S1
|
||||
E3
|
||||
S1
|
||||
N2
|
||||
E4
|
||||
R180
|
||||
N4
|
||||
F7
|
||||
N3
|
||||
W4
|
||||
F89
|
||||
N4
|
||||
E3
|
||||
L90
|
||||
F97
|
2
2020/inputs/day_13
Normal file
2
2020/inputs/day_13
Normal file
@@ -0,0 +1,2 @@
|
||||
1000507
|
||||
29,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,37,x,x,x,x,x,631,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,13,19,x,x,x,23,x,x,x,x,x,x,x,383,x,x,x,x,x,x,x,x,x,41,x,x,x,x,x,x,17
|
585
2020/inputs/day_14
Normal file
585
2020/inputs/day_14
Normal file
@@ -0,0 +1,585 @@
|
||||
mask = 01101001XXX000000111X1000X0000X11010
|
||||
mem[9227] = 2018
|
||||
mem[2743] = 107216
|
||||
mem[7335] = 5498199
|
||||
mem[62141] = 28643
|
||||
mem[10396] = 615
|
||||
mem[44596] = 16631831
|
||||
mem[30301] = 1036820554
|
||||
mask = 0X0010X11100000010011011111010101XX1
|
||||
mem[25912] = 1706212
|
||||
mem[18700] = 1436
|
||||
mem[31216] = 1307
|
||||
mem[61767] = 10950397
|
||||
mem[55019] = 9351804
|
||||
mem[5477] = 970907882
|
||||
mem[49380] = 1102790
|
||||
mask = 1100110XX10X10X00001X00010X10XX11111
|
||||
mem[43431] = 43329
|
||||
mem[39748] = 2295
|
||||
mem[59160] = 4068818
|
||||
mask = X10010101XXX00X010010X1X011001001X1X
|
||||
mem[783] = 969
|
||||
mem[15182] = 4439242
|
||||
mem[34082] = 129773486
|
||||
mem[3726] = 36911281
|
||||
mem[14093] = 198
|
||||
mem[7136] = 967728
|
||||
mask = 1100X1100101000011011000010XX010111X
|
||||
mem[33093] = 2500
|
||||
mem[48387] = 5485316
|
||||
mem[56382] = 38247
|
||||
mem[19403] = 4830301
|
||||
mem[53014] = 12910126
|
||||
mem[51746] = 7221070
|
||||
mask = 1100111011000000X101XX1001111100000X
|
||||
mem[45506] = 6583
|
||||
mem[37356] = 5047
|
||||
mem[60299] = 16732544
|
||||
mem[34415] = 233715
|
||||
mem[38131] = 3633859
|
||||
mem[39038] = 569179
|
||||
mask = 11X011111110XXX01011X0001X000100X0XX
|
||||
mem[61857] = 60109927
|
||||
mem[61984] = 56703060
|
||||
mem[25744] = 85084
|
||||
mem[19683] = 146541846
|
||||
mem[5034] = 3308207
|
||||
mask = X1X01100110X01001101001110011000X111
|
||||
mem[33321] = 476094
|
||||
mem[47197] = 2775
|
||||
mem[33561] = 1185
|
||||
mem[44649] = 1910953
|
||||
mem[12452] = 778855
|
||||
mem[62667] = 7299049
|
||||
mem[30629] = 942780
|
||||
mask = 11101010110000000X01101X01001111XX01
|
||||
mem[15304] = 2029422
|
||||
mem[47648] = 224645267
|
||||
mask = 110010000XX0X00000010X0000000X001000
|
||||
mem[18174] = 10605
|
||||
mem[27164] = 58633252
|
||||
mem[49380] = 896
|
||||
mem[35511] = 1865
|
||||
mask = 1101X10011111010001100100001X011XX1X
|
||||
mem[46534] = 133047049
|
||||
mem[40985] = 1546810
|
||||
mem[19567] = 322254
|
||||
mem[13516] = 5103
|
||||
mem[43307] = 220958462
|
||||
mem[3522] = 10
|
||||
mask = 00101010110X0000110X100101XX00110000
|
||||
mem[32856] = 468089608
|
||||
mem[16581] = 1520
|
||||
mem[44671] = 493645
|
||||
mem[59135] = 743
|
||||
mask = X1001100010000X00001X1X100X0100011X1
|
||||
mem[24709] = 381965
|
||||
mem[18599] = 58320
|
||||
mask = 11101110X1000X0X001111XX010110101101
|
||||
mem[29307] = 110716
|
||||
mem[11929] = 68368314
|
||||
mem[5595] = 98625
|
||||
mem[19842] = 114448
|
||||
mem[82] = 116842679
|
||||
mem[28608] = 106081605
|
||||
mem[38415] = 166431
|
||||
mask = 11X010001100X000011101101X101X1X0010
|
||||
mem[64997] = 537175943
|
||||
mem[4215] = 1700
|
||||
mem[7842] = 91467205
|
||||
mem[28677] = 92497218
|
||||
mem[42227] = 309706330
|
||||
mask = 0X00XX1011000010X00X0X0101X100001010
|
||||
mem[24113] = 18710
|
||||
mem[41368] = 61727257
|
||||
mem[24910] = 1216
|
||||
mem[48962] = 431244119
|
||||
mem[52880] = 31537
|
||||
mem[26016] = 3867529
|
||||
mask = 110X100001011000100X001XX10110110111
|
||||
mem[44808] = 8860
|
||||
mem[977] = 227853
|
||||
mem[24326] = 1292
|
||||
mem[11196] = 185995
|
||||
mem[24910] = 1456794
|
||||
mem[38209] = 11963784
|
||||
mem[2516] = 206274
|
||||
mask = 10101X010X010011011XXXX01100X0X01X00
|
||||
mem[37266] = 53802
|
||||
mem[43697] = 3027265
|
||||
mem[40421] = 182178
|
||||
mem[14745] = 5768586
|
||||
mem[33359] = 62113
|
||||
mask = 11X01X0011000X00X101101110XX11XXX101
|
||||
mem[60299] = 38321864
|
||||
mem[13933] = 4119750
|
||||
mem[63519] = 3793
|
||||
mem[33359] = 6062406
|
||||
mem[2145] = 1197981
|
||||
mask = 01101000110X0X00XX010XX1X0111100X0X0
|
||||
mem[996] = 1535
|
||||
mem[37483] = 415
|
||||
mem[36833] = 15446433
|
||||
mem[12962] = 139638950
|
||||
mask = 0X1010101111X00X10010X1X01110111011X
|
||||
mem[28705] = 73
|
||||
mem[46437] = 145646713
|
||||
mem[10079] = 1238645
|
||||
mem[23342] = 1856314
|
||||
mem[7654] = 259644
|
||||
mask = X1X010X0110X0000X001XX111X100110X000
|
||||
mem[32957] = 365133
|
||||
mem[13738] = 43314758
|
||||
mem[21472] = 985365
|
||||
mem[42598] = 32659669
|
||||
mask = 01101X001100000X01X101X111100000X1X1
|
||||
mem[39855] = 17101
|
||||
mem[6765] = 846
|
||||
mem[40866] = 495565203
|
||||
mem[56928] = 3961201
|
||||
mem[17228] = 3585
|
||||
mask = 1100101010XX001X100100X0X01111001100
|
||||
mem[64982] = 103054
|
||||
mem[35989] = 44254616
|
||||
mem[11366] = 7715
|
||||
mask = 101010010001001XX11100X0X1100110X011
|
||||
mem[43005] = 1741
|
||||
mem[46533] = 383034263
|
||||
mem[30931] = 2731638
|
||||
mem[35338] = 133759116
|
||||
mask = 0010110X011X00X011XX00101000X10X1X00
|
||||
mem[23302] = 575430886
|
||||
mem[41184] = 484667743
|
||||
mem[11064] = 6013819
|
||||
mask = X10010101X0100X01X01011X1111000XX010
|
||||
mem[59531] = 51445
|
||||
mem[604] = 65230
|
||||
mem[25153] = 57802
|
||||
mem[42909] = 16748064
|
||||
mask = XX10100XXX0X001101X101011100101X0X10
|
||||
mem[10016] = 1384
|
||||
mem[28736] = 373587
|
||||
mem[5388] = 20765
|
||||
mem[55736] = 276409152
|
||||
mask = 0X001001100000X0100X0101X0X111010001
|
||||
mem[713] = 941
|
||||
mem[34620] = 47358
|
||||
mem[64695] = 118873278
|
||||
mem[28381] = 5504290
|
||||
mem[9352] = 1335605
|
||||
mem[5606] = 127872
|
||||
mask = 00101010110X0000XXXX0X0101X00X001000
|
||||
mem[49208] = 1902856
|
||||
mem[3726] = 861821129
|
||||
mem[51431] = 217032464
|
||||
mem[8104] = 201580051
|
||||
mem[8561] = 22666152
|
||||
mem[27779] = 25685964
|
||||
mem[14798] = 35556100
|
||||
mask = 11001X1XX1X0000010X10010111XX10X0X10
|
||||
mem[40524] = 62170024
|
||||
mem[26151] = 32735
|
||||
mem[36331] = 791
|
||||
mem[51971] = 4077
|
||||
mem[39949] = 1208881
|
||||
mask = 1110X00011X00100XX0X00111X011X1X0100
|
||||
mem[49523] = 45562
|
||||
mem[65190] = 437018
|
||||
mem[48194] = 590010
|
||||
mem[34081] = 2730318
|
||||
mem[19485] = 71146
|
||||
mem[43675] = 5165
|
||||
mem[41990] = 5786294
|
||||
mask = 1100XX00110XXX0000101X000010X11X1X10
|
||||
mem[46338] = 969889
|
||||
mem[56130] = 19345
|
||||
mem[56003] = 108577353
|
||||
mem[38580] = 132743
|
||||
mem[51852] = 29007
|
||||
mem[9562] = 4082929
|
||||
mask = 01X0X0XX11000000100100111X1111X0X000
|
||||
mem[16562] = 42746421
|
||||
mem[10764] = 78319913
|
||||
mem[62076] = 1791961
|
||||
mem[34147] = 517873792
|
||||
mem[6626] = 46567
|
||||
mem[56829] = 132232586
|
||||
mem[16078] = 1231
|
||||
mask = 110XXX1101000000101110111X1001X0XX01
|
||||
mem[36554] = 734907
|
||||
mem[24177] = 794769422
|
||||
mem[49782] = 2634
|
||||
mem[27278] = 2566029
|
||||
mem[20585] = 181
|
||||
mem[54195] = 82217823
|
||||
mask = 11101X0111000100X110X011011000X0X1X1
|
||||
mem[36637] = 20724
|
||||
mem[61749] = 22922812
|
||||
mem[63812] = 29576
|
||||
mem[56928] = 127412
|
||||
mem[26016] = 15698299
|
||||
mem[63570] = 546374
|
||||
mask = 010000101100X010X000111XX01110010X0X
|
||||
mem[42138] = 20438
|
||||
mem[773] = 274846
|
||||
mem[42598] = 12492801
|
||||
mask = 1110000XXX0001X011000010100010000100
|
||||
mem[58846] = 9689
|
||||
mem[52001] = 22660
|
||||
mem[23579] = 145885
|
||||
mem[14525] = 103
|
||||
mem[48501] = 7119
|
||||
mem[25744] = 946940111
|
||||
mask = 01XX0010X10000X00000X1X0110101001XX0
|
||||
mem[58095] = 2159
|
||||
mem[39650] = 116399462
|
||||
mem[46338] = 2119
|
||||
mem[12284] = 8136087
|
||||
mem[35849] = 96530
|
||||
mask = 10X010011100000010010XXXX0111X100X01
|
||||
mem[11994] = 7198139
|
||||
mem[19485] = 13623414
|
||||
mem[16072] = 464968689
|
||||
mask = 11101000110X0X00X1110010X101X0X00010
|
||||
mem[27871] = 191670
|
||||
mem[40370] = 1062912647
|
||||
mem[12962] = 94498
|
||||
mem[39988] = 505747636
|
||||
mem[2651] = 27293224
|
||||
mask = 00101100X1X00000X1011X1X10X01100X0X0
|
||||
mem[39511] = 1228170
|
||||
mem[12431] = 22479089
|
||||
mem[16819] = 2295885
|
||||
mem[16562] = 535
|
||||
mem[61184] = 5370560
|
||||
mem[61728] = 680
|
||||
mask = X1101010X1XX00X010010111X1X001X11101
|
||||
mem[27439] = 180428
|
||||
mem[64502] = 317409
|
||||
mem[63473] = 4484
|
||||
mem[32050] = 957
|
||||
mem[17565] = 451
|
||||
mask = 001X100111X100110101010XX001X0X010X0
|
||||
mem[38912] = 11646861
|
||||
mem[10983] = 2571733
|
||||
mem[57574] = 547761278
|
||||
mem[21922] = 936
|
||||
mask = 1110X0001100010001010X111X00X1111001
|
||||
mem[41652] = 15
|
||||
mem[52965] = 9633
|
||||
mem[57427] = 44143
|
||||
mem[1360] = 52315
|
||||
mem[29741] = 30065628
|
||||
mask = X1XX100011X000X0XX01100110X10X101000
|
||||
mem[13738] = 41784
|
||||
mem[82] = 2093225
|
||||
mask = 1X0X1X0X110000000XX11010001010100011
|
||||
mem[5734] = 3809359
|
||||
mem[39002] = 64194333
|
||||
mem[45226] = 582040770
|
||||
mem[27757] = 201468
|
||||
mem[23474] = 24958
|
||||
mem[18945] = 186986435
|
||||
mask = 110011XXX1011000000X100X00111110X1XX
|
||||
mem[26951] = 34107
|
||||
mem[9065] = 235577282
|
||||
mem[61339] = 33344630
|
||||
mask = X01X1010X1010000011100X1110110101000
|
||||
mem[46016] = 799
|
||||
mem[1032] = 2537
|
||||
mem[14956] = 146596
|
||||
mask = 1110X00011000000XX1X01110010X1001111
|
||||
mem[44128] = 2854
|
||||
mem[7947] = 311
|
||||
mem[10438] = 9703
|
||||
mem[59531] = 792206617
|
||||
mem[61749] = 93851
|
||||
mem[64623] = 1641525
|
||||
mask = 110011001100XX0000011X011X0001100010
|
||||
mem[42983] = 45292954
|
||||
mem[55070] = 5534
|
||||
mem[39372] = 274025469
|
||||
mem[13952] = 35023
|
||||
mem[15926] = 2673045
|
||||
mask = 111000001100X0X0X11101100010011X0101
|
||||
mem[30629] = 8185
|
||||
mem[64623] = 21212602
|
||||
mask = 110011000X010X0010XX10001XX01010X001
|
||||
mem[43528] = 7668024
|
||||
mem[19875] = 92712996
|
||||
mem[1687] = 352650669
|
||||
mem[46581] = 697
|
||||
mask = XX0010011X0000001001XX001101000X0XX0
|
||||
mem[14313] = 127102653
|
||||
mem[27061] = 3071194
|
||||
mem[15305] = 2799
|
||||
mem[64156] = 520353
|
||||
mask = 11X01X0X1X0001001101001110001X001010
|
||||
mem[46088] = 103332
|
||||
mem[36868] = 127638504
|
||||
mem[24173] = 64518503
|
||||
mem[51207] = 27119
|
||||
mem[32439] = 31653573
|
||||
mask = X1X010X0110X000X0101110110X1111X0X0X
|
||||
mem[30216] = 6171472
|
||||
mem[54536] = 3149
|
||||
mem[61749] = 45155816
|
||||
mem[63428] = 2285065
|
||||
mem[21170] = 526423366
|
||||
mem[56037] = 21621
|
||||
mem[21744] = 6711
|
||||
mask = 1100111X0101X00011010001100001X0101X
|
||||
mem[50634] = 7830
|
||||
mem[34473] = 93434803
|
||||
mem[50697] = 3975
|
||||
mem[28736] = 245436882
|
||||
mem[36181] = 68026875
|
||||
mem[44740] = 26732
|
||||
mask = 1100XX11X110X0X010111011101XX1000010
|
||||
mem[8264] = 2618
|
||||
mem[22897] = 492
|
||||
mem[25514] = 310547768
|
||||
mem[14091] = 1296713
|
||||
mask = 11X01000110000000X11XX11100000X0011X
|
||||
mem[34147] = 55819618
|
||||
mem[713] = 57753013
|
||||
mem[43005] = 734
|
||||
mem[19147] = 1261
|
||||
mem[30629] = 100095173
|
||||
mask = 11X1111X110X0000010111011011000000X0
|
||||
mem[45108] = 255101
|
||||
mem[14313] = 4574087
|
||||
mem[17120] = 24850
|
||||
mask = 011000011100X000X00100X110110100X110
|
||||
mem[4230] = 303831830
|
||||
mem[56928] = 5163880
|
||||
mem[14726] = 946803
|
||||
mem[65140] = 4998
|
||||
mask = 01XX10010X0000010111X111010001101100
|
||||
mem[48387] = 244989536
|
||||
mem[55491] = 31887
|
||||
mem[10659] = 329486493
|
||||
mask = 0111XX0X1100000001111X0101010000X010
|
||||
mem[35490] = 7441
|
||||
mem[38204] = 2781817
|
||||
mem[15504] = 4192042
|
||||
mem[48165] = 22254
|
||||
mem[41344] = 1275190
|
||||
mem[31355] = 727899223
|
||||
mem[6770] = 46922
|
||||
mask = XXXX1XX0110000000X0100X110X110100000
|
||||
mem[55906] = 45453
|
||||
mem[9448] = 136999865
|
||||
mem[43310] = 26035896
|
||||
mem[64498] = 31435
|
||||
mask = 11101000110X0X0X1X10011100110X001100
|
||||
mem[38423] = 17106
|
||||
mem[19919] = 317562128
|
||||
mem[5388] = 1437766
|
||||
mask = 11X0100X110001000X1010X00100111X000X
|
||||
mem[59546] = 1648175
|
||||
mem[57429] = 1451227
|
||||
mem[10659] = 3865
|
||||
mem[35838] = 304651619
|
||||
mem[38506] = 663621
|
||||
mem[60490] = 7815
|
||||
mem[16648] = 139051458
|
||||
mask = 111110X0111X0X10110100101X11XX00000X
|
||||
mem[5237] = 38290
|
||||
mem[30301] = 2620
|
||||
mem[65271] = 1412405
|
||||
mem[17030] = 1268
|
||||
mem[1848] = 647
|
||||
mem[45226] = 4055568
|
||||
mem[16123] = 15303130
|
||||
mask = 01X010X0X100000X01011X0101011X1XXX01
|
||||
mem[40721] = 35664047
|
||||
mem[2541] = 18078490
|
||||
mem[19062] = 8737
|
||||
mem[56642] = 109
|
||||
mem[1732] = 99084
|
||||
mem[43287] = 186566478
|
||||
mask = 1X001110X1110X0X1001110001101XXXXX00
|
||||
mem[22104] = 559
|
||||
mem[17735] = 54865
|
||||
mem[38352] = 437
|
||||
mem[32396] = 3144542
|
||||
mem[13760] = 139350
|
||||
mask = 00111001X101X011010X0011X0110010X011
|
||||
mem[27439] = 25862312
|
||||
mem[3504] = 1937287
|
||||
mem[59498] = 234476272
|
||||
mem[29550] = 1498180
|
||||
mem[19709] = 2171
|
||||
mem[19165] = 20631
|
||||
mem[63523] = 64887100
|
||||
mask = 00X0X0011000000X100101001X0100010000
|
||||
mem[13738] = 761575
|
||||
mem[4342] = 24952
|
||||
mem[35511] = 50203418
|
||||
mem[27955] = 46141252
|
||||
mem[14216] = 49071218
|
||||
mask = 011X1001X100000X0X11001XX10X100X001X
|
||||
mem[29346] = 20677
|
||||
mem[35091] = 215097141
|
||||
mem[40087] = 1901294
|
||||
mem[19485] = 251731879
|
||||
mem[24684] = 1467
|
||||
mem[25815] = 1857109
|
||||
mem[62590] = 216698971
|
||||
mask = 0010101011X0000010110X11100XXXX01110
|
||||
mem[28741] = 1680
|
||||
mem[23948] = 171
|
||||
mem[39293] = 14161274
|
||||
mem[52880] = 7933820
|
||||
mask = X01010010001001101XX101100001000XX00
|
||||
mem[48409] = 599454
|
||||
mem[4215] = 26481029
|
||||
mem[15546] = 10024168
|
||||
mask = 11X01XX0110000000XX11X111111110X1X00
|
||||
mem[42920] = 882414611
|
||||
mem[57574] = 1289149
|
||||
mem[30629] = 809394101
|
||||
mem[1476] = 2215
|
||||
mem[48366] = 120690110
|
||||
mask = 111010XX110001001X101X11X1100X011000
|
||||
mem[28951] = 19045798
|
||||
mem[37356] = 14088692
|
||||
mem[65242] = 32015
|
||||
mem[19875] = 1891
|
||||
mem[59787] = 3238036
|
||||
mask = 111010001101X1X0X01001010011010011X0
|
||||
mem[50947] = 11958907
|
||||
mem[50805] = 4184615
|
||||
mem[9216] = 7284
|
||||
mem[9366] = 616014
|
||||
mem[39243] = 50245671
|
||||
mem[26151] = 225
|
||||
mem[37356] = 7454
|
||||
mask = X11010XX110000XX01110X0X110X10100X00
|
||||
mem[10146] = 901
|
||||
mem[16819] = 1669
|
||||
mem[49594] = 30118559
|
||||
mask = 110X101X1X1X0000100100001011X1000001
|
||||
mem[44462] = 437397422
|
||||
mem[46581] = 122690574
|
||||
mem[47406] = 2223301
|
||||
mem[23302] = 27350
|
||||
mem[9227] = 64749050
|
||||
mem[32439] = 830166089
|
||||
mem[16958] = 1767
|
||||
mask = X110111X110000000101100111111000X10X
|
||||
mem[30526] = 518919
|
||||
mem[45088] = 3881541
|
||||
mem[28736] = 101657283
|
||||
mem[46276] = 67581
|
||||
mem[54442] = 874618503
|
||||
mask = X10XX11011011X1000X11X00X0X100000000
|
||||
mem[14438] = 68398
|
||||
mem[43123] = 682
|
||||
mem[53975] = 12217
|
||||
mem[14906] = 14892
|
||||
mask = 011010111X0000X10111000X0100X0X10111
|
||||
mem[18099] = 129190855
|
||||
mem[24225] = 60254642
|
||||
mem[6147] = 1967266
|
||||
mem[23568] = 12452
|
||||
mem[40866] = 233049911
|
||||
mask = 01101000110X0X000101X00110011X1X0X00
|
||||
mem[141] = 6636298
|
||||
mem[61767] = 8072
|
||||
mem[51955] = 1084869
|
||||
mem[28703] = 86518
|
||||
mem[49943] = 1162266
|
||||
mem[6728] = 951818288
|
||||
mask = 010010101100001010X100X01111X1000X10
|
||||
mem[26893] = 2377486
|
||||
mem[26841] = 521
|
||||
mem[5584] = 1929
|
||||
mask = 1100X11X01XX00001X011X0X110XX0001100
|
||||
mem[24300] = 30584
|
||||
mem[62220] = 926355
|
||||
mem[21879] = 1802
|
||||
mem[21963] = 346
|
||||
mem[42819] = 217744624
|
||||
mem[38442] = 75344432
|
||||
mask = 11X010010X0000110111X10000X110001X10
|
||||
mem[49782] = 331229
|
||||
mem[37055] = 264861759
|
||||
mem[7464] = 122702
|
||||
mem[53975] = 10052271
|
||||
mask = 00101100111X00XX01X11101100011X10XX0
|
||||
mem[35490] = 369795318
|
||||
mem[12330] = 242078616
|
||||
mask = XX00X01011X00X00010101X110X011110101
|
||||
mem[55598] = 3761622
|
||||
mem[10193] = 70536
|
||||
mem[4694] = 39620509
|
||||
mem[40721] = 424771
|
||||
mem[33140] = 154232
|
||||
mem[26948] = 37978095
|
||||
mask = X10X11X011X1101000X1000X10X0X001000X
|
||||
mem[10734] = 35783
|
||||
mem[60994] = 64736
|
||||
mem[47530] = 211
|
||||
mask = 110011111101X00X000X0X10X01001100001
|
||||
mem[45758] = 714
|
||||
mem[33710] = 3308098
|
||||
mem[34082] = 1470
|
||||
mem[13513] = 339084
|
||||
mem[36005] = 948
|
||||
mem[22208] = 54801
|
||||
mask = 11001X00X10XX000X00100X01X1X1010X010
|
||||
mem[64623] = 226472
|
||||
mem[61920] = 69906
|
||||
mem[21637] = 18145978
|
||||
mem[35989] = 52932732
|
||||
mask = XX001011X100000X1001XX10X100X1011010
|
||||
mem[16277] = 1953
|
||||
mem[1820] = 71
|
||||
mem[52001] = 2117192
|
||||
mem[41507] = 2489824
|
||||
mem[63428] = 4874
|
||||
mask = 01000X11110X0000100110X010X1X0000X0X
|
||||
mem[50966] = 649836905
|
||||
mem[13251] = 84391
|
||||
mem[2827] = 2335210
|
||||
mask = 01X01000X100X0000111X00X1101XX110010
|
||||
mem[37050] = 22573528
|
||||
mem[60994] = 508
|
||||
mem[1560] = 286179
|
||||
mask = 1110110111000100X1101X10000X0010X111
|
||||
mem[15675] = 36967016
|
||||
mem[46000] = 233496883
|
||||
mem[34415] = 2067736
|
||||
mem[9212] = 59203547
|
||||
mem[4474] = 1218632
|
||||
mem[18794] = 248839504
|
||||
mem[48996] = 1469
|
||||
mask = XX0X111011000010X000000X011100111011
|
||||
mem[2827] = 265677
|
||||
mem[38352] = 14739817
|
||||
mem[8104] = 552372
|
||||
mem[44416] = 430420
|
||||
mem[10177] = 292
|
||||
mem[27665] = 233108
|
||||
mask = X0X010X01101X0000101010X110010100000
|
||||
mem[26604] = 97034170
|
||||
mem[24910] = 2438352
|
||||
mem[21800] = 6131
|
||||
mem[38442] = 33942864
|
||||
mask = 11X010X01101X100X0101101101001X01X1X
|
||||
mem[19403] = 2412
|
||||
mem[62888] = 53930
|
||||
mem[55471] = 3757
|
||||
mem[62415] = 124924
|
||||
mem[837] = 78
|
||||
mask = 11101000110XX00110100X11111101001X11
|
||||
mem[28580] = 14210267
|
||||
mem[61701] = 21584384
|
||||
mem[28544] = 23917
|
||||
mask = 110011X01100000000011110X11X011X0010
|
||||
mem[24266] = 4131276
|
||||
mem[38423] = 9580
|
||||
mem[64502] = 2974919
|
1
2020/inputs/day_15
Normal file
1
2020/inputs/day_15
Normal file
@@ -0,0 +1 @@
|
||||
5,2,8,16,18,0,1
|
270
2020/inputs/day_16
Normal file
270
2020/inputs/day_16
Normal file
@@ -0,0 +1,270 @@
|
||||
departure location: 32-615 or 626-955
|
||||
departure station: 47-439 or 454-961
|
||||
departure platform: 31-98 or 119-969
|
||||
departure track: 45-746 or 763-967
|
||||
departure date: 49-723 or 736-954
|
||||
departure time: 42-556 or 581-962
|
||||
arrival location: 46-401 or 418-964
|
||||
arrival station: 39-281 or 295-974
|
||||
arrival platform: 43-80 or 99-950
|
||||
arrival track: 28-670 or 682-959
|
||||
class: 43-504 or 520-957
|
||||
duration: 31-358 or 365-959
|
||||
price: 41-626 or 650-956
|
||||
route: 26-488 or 495-949
|
||||
row: 46-913 or 931-965
|
||||
seat: 40-223 or 249-958
|
||||
train: 32-832 or 853-966
|
||||
type: 36-776 or 798-960
|
||||
wagon: 38-122 or 134-969
|
||||
zone: 27-870 or 885-952
|
||||
|
||||
your ticket:
|
||||
191,61,149,157,79,197,67,139,59,71,163,53,73,137,167,173,193,151,181,179
|
||||
|
||||
nearby tickets:
|
||||
482,948,368,336,171,501,192,438,384,499,692,331,527,624,344,859,351,902,213,615
|
||||
391,405,942,203,174,467,611,553,65,544,349,899,221,264,547,800,942,144,738,304
|
||||
470,497,358,169,599,613,804,342,820,865,594,58,825,167,362,771,269,768,706,765
|
||||
891,526,368,191,296,295,270,497,735,378,351,688,317,186,526,896,813,544,683,72
|
||||
544,396,163,686,911,137,59,322,884,586,597,223,692,525,316,704,483,72,683,745
|
||||
712,763,626,594,555,377,440,651,945,693,500,51,281,475,948,817,687,314,320,189
|
||||
461,295,273,386,872,57,143,497,147,657,520,901,202,170,824,704,815,600,663,706
|
||||
670,215,74,607,159,862,389,266,61,250,127,320,193,592,687,167,769,147,555,653
|
||||
395,342,197,865,990,525,912,377,278,897,799,366,464,689,398,901,597,204,667,546
|
||||
550,936,205,686,886,340,183,800,251,905,338,605,486,945,343,141,935,903,155,110
|
||||
479,947,418,809,421,687,221,136,56,712,420,433,612,748,196,349,357,298,381,466
|
||||
126,370,66,341,939,530,501,886,626,664,275,250,55,250,270,175,63,80,520,419
|
||||
687,170,171,326,249,879,60,868,329,400,352,663,813,719,529,217,72,946,937,498
|
||||
895,173,393,147,439,525,489,827,137,942,684,454,499,525,832,178,597,78,714,298
|
||||
897,154,60,429,856,165,657,184,857,63,897,765,719,144,577,220,257,476,63,907
|
||||
797,866,541,712,307,589,539,683,689,895,908,473,556,496,54,949,143,173,765,60
|
||||
832,146,205,699,652,443,209,376,190,438,421,424,823,886,197,901,255,691,300,72
|
||||
997,591,435,945,943,811,485,465,399,652,382,51,387,484,692,911,535,696,705,336
|
||||
884,521,351,809,533,120,260,179,588,186,277,581,667,314,218,435,324,808,546,551
|
||||
292,350,51,805,344,461,670,57,342,389,551,310,217,767,160,938,662,599,908,420
|
||||
821,630,175,324,387,150,609,532,327,206,687,328,817,76,932,317,890,336,301,700
|
||||
453,433,251,708,775,461,775,276,460,524,469,583,67,626,896,858,521,367,309,315
|
||||
151,316,806,170,356,67,618,861,912,157,250,168,826,432,469,352,803,612,390,195
|
||||
534,704,886,600,552,313,367,897,59,804,496,361,154,722,436,859,375,209,74,169
|
||||
62,165,61,707,609,278,470,350,544,430,886,866,469,649,943,316,599,910,764,424
|
||||
698,334,61,212,688,979,745,688,656,420,356,141,66,384,193,421,828,767,277,718
|
||||
61,219,68,460,381,856,684,745,422,979,769,251,470,69,719,421,612,466,301,295
|
||||
799,670,325,419,824,258,767,58,295,853,803,211,55,120,555,129,334,154,530,181
|
||||
594,910,862,765,589,602,745,498,486,722,895,163,419,805,623,904,392,861,715,263
|
||||
853,145,132,320,254,652,658,260,169,768,311,711,150,668,346,366,279,178,188,467
|
||||
198,202,913,600,346,326,597,864,743,554,300,522,607,192,737,603,316,146,625,933
|
||||
702,90,345,655,463,853,608,541,389,272,653,330,864,885,657,859,484,831,259,310
|
||||
686,489,668,597,501,526,272,71,829,500,471,811,62,949,201,603,306,530,196,304
|
||||
491,482,822,600,603,523,136,177,252,208,378,435,212,525,194,488,67,698,717,475
|
||||
894,167,332,126,385,265,315,583,154,694,433,541,56,773,326,170,149,156,119,771
|
||||
223,460,377,480,975,814,582,534,611,385,524,373,769,340,154,396,175,260,302,868
|
||||
353,746,661,200,982,773,276,907,656,221,173,119,314,370,460,341,912,370,720,462
|
||||
305,334,251,186,766,557,766,772,706,392,799,170,721,58,708,198,765,457,776,205
|
||||
522,164,521,419,352,802,218,531,813,364,263,737,145,931,439,77,809,605,354,664
|
||||
66,697,63,655,321,481,651,887,931,422,342,375,372,878,863,220,165,597,423,465
|
||||
394,281,523,264,947,500,473,654,70,603,813,682,765,299,551,857,330,150,613,879
|
||||
317,400,277,717,147,310,705,615,317,136,812,503,582,377,333,335,539,544,4,303
|
||||
329,770,772,723,690,82,709,803,217,336,854,588,804,458,540,189,650,262,335,303
|
||||
58,932,827,541,556,806,119,423,334,313,204,893,203,864,182,814,714,528,315,360
|
||||
771,750,309,526,805,807,142,429,479,365,868,270,206,318,186,824,502,328,582,802
|
||||
168,155,581,767,434,438,934,815,939,303,743,313,373,902,705,947,339,310,225,771
|
||||
384,805,542,212,426,419,336,536,346,173,336,270,270,578,200,163,831,456,324,474
|
||||
609,890,488,258,496,422,663,669,173,161,892,892,78,771,260,89,485,702,615,64
|
||||
75,652,866,906,545,167,184,274,610,941,161,52,944,626,912,302,625,615,314,313
|
||||
604,50,467,284,63,203,379,467,309,377,304,438,692,191,394,304,256,818,365,215
|
||||
831,393,528,366,476,361,485,400,382,535,500,689,891,158,809,496,934,213,341,501
|
||||
933,328,180,588,542,582,799,327,292,455,210,464,178,305,581,899,368,498,803,663
|
||||
384,663,586,503,941,304,16,819,210,741,153,709,537,664,156,854,377,650,430,153
|
||||
5,336,908,152,903,740,208,605,398,462,398,949,816,767,348,302,718,486,688,934
|
||||
248,601,554,202,911,354,369,279,165,78,464,531,944,295,590,170,141,483,812,900
|
||||
76,198,943,484,317,210,415,58,907,140,811,766,70,162,251,911,897,463,658,604
|
||||
137,939,827,348,92,896,939,214,437,667,807,62,159,904,480,707,173,904,349,337
|
||||
218,137,866,631,199,467,708,938,438,742,660,667,434,547,539,665,610,55,607,340
|
||||
661,853,434,372,600,287,742,595,587,936,478,942,341,68,861,51,541,158,468,210
|
||||
204,189,878,740,390,692,393,419,526,905,262,742,383,868,375,316,656,694,746,894
|
||||
554,538,722,272,312,103,946,893,591,527,775,887,50,597,544,906,817,311,524,258
|
||||
577,821,255,427,218,832,720,281,704,200,855,434,54,503,152,613,885,865,201,389
|
||||
712,396,392,144,308,458,943,804,473,520,545,249,190,806,249,163,730,263,144,376
|
||||
195,263,422,109,372,767,155,302,177,323,547,336,73,194,763,501,742,393,436,469
|
||||
892,217,829,342,700,279,776,657,488,698,432,206,666,260,706,214,311,128,430,608
|
||||
60,622,140,71,825,427,866,178,391,387,947,138,503,68,72,866,599,691,369,57
|
||||
136,319,474,145,891,705,314,122,304,334,642,583,258,717,191,319,859,469,909,936
|
||||
824,653,75,685,716,886,743,61,394,369,465,828,76,803,432,768,685,601,682,98
|
||||
608,300,56,718,439,219,896,808,825,52,377,862,899,272,104,912,203,219,183,65
|
||||
334,530,274,222,550,685,601,249,692,13,188,689,420,669,434,419,861,50,604,169
|
||||
158,867,395,854,78,552,938,816,331,427,745,888,824,57,64,197,669,298,92,476
|
||||
660,350,23,213,79,744,500,437,832,899,524,211,815,461,819,143,300,699,859,607
|
||||
54,549,663,264,145,685,629,210,469,554,860,183,309,503,65,387,664,155,769,899
|
||||
75,104,478,742,465,659,388,696,327,662,314,597,392,700,372,626,329,695,307,615
|
||||
556,272,179,887,462,805,217,464,278,205,274,740,766,176,800,217,606,484,18,938
|
||||
354,545,521,941,818,699,312,666,495,936,199,273,665,980,769,702,348,540,399,329
|
||||
471,278,693,660,947,198,378,56,992,78,426,684,221,601,667,863,596,817,888,521
|
||||
148,545,481,78,544,342,544,437,430,397,397,350,294,597,655,697,665,465,831,892
|
||||
932,867,355,659,313,659,666,703,745,151,314,890,254,356,302,463,108,296,910,66
|
||||
743,253,817,196,587,993,158,523,723,829,149,889,862,173,715,313,496,401,192,160
|
||||
459,176,461,396,291,264,136,831,810,297,189,888,545,862,711,668,376,700,656,550
|
||||
937,522,204,870,382,537,107,51,870,425,465,822,392,134,866,908,299,658,50,587
|
||||
416,433,253,121,812,818,370,868,540,223,343,807,162,79,548,421,722,940,429,870
|
||||
548,907,320,156,495,597,168,665,469,394,333,347,78,258,696,187,808,606,923,818
|
||||
147,901,479,855,171,820,770,439,465,478,587,259,301,100,422,468,853,811,803,607
|
||||
701,352,458,905,50,279,501,309,889,356,809,869,831,256,422,482,644,390,348,330
|
||||
270,989,894,210,827,394,377,461,251,723,60,714,503,897,201,802,157,370,891,54
|
||||
486,274,656,199,272,813,708,142,156,931,122,477,65,68,460,931,906,667,413,372
|
||||
462,14,192,899,140,801,376,818,62,332,942,223,547,591,670,210,500,396,901,888
|
||||
684,542,266,69,425,395,310,431,439,162,936,357,169,890,424,347,716,524,446,894
|
||||
375,763,651,704,189,471,934,304,603,462,335,887,337,136,472,528,656,169,282,158
|
||||
480,276,298,172,656,53,273,488,660,741,163,813,55,125,698,395,376,346,432,669
|
||||
71,69,897,893,393,391,740,422,907,275,207,431,901,743,877,75,465,549,551,544
|
||||
166,297,856,687,166,62,503,864,720,268,653,345,771,80,9,265,948,202,472,537
|
||||
272,820,485,737,370,332,202,503,219,718,699,775,186,435,223,501,819,361,378,306
|
||||
337,767,302,999,583,670,712,934,137,373,936,684,216,66,799,266,458,334,615,318
|
||||
178,480,555,379,341,181,354,258,13,163,190,196,652,257,77,350,602,176,940,801
|
||||
818,377,869,723,600,120,703,161,153,466,173,161,528,534,827,534,990,536,167,720
|
||||
135,451,139,217,264,267,422,420,651,211,369,660,941,889,861,545,521,718,461,326
|
||||
53,544,943,172,862,255,214,317,602,530,223,218,16,217,218,669,819,434,396,373
|
||||
61,68,162,566,156,886,159,687,325,318,317,393,155,197,855,798,774,653,205,151
|
||||
495,474,535,22,742,806,154,368,316,887,276,152,949,347,122,261,536,464,861,264
|
||||
273,160,867,152,73,933,826,433,153,466,180,945,473,474,735,334,523,157,333,718
|
||||
261,164,606,768,740,138,386,251,818,184,290,808,215,707,202,66,474,207,379,592
|
||||
381,55,461,829,596,581,375,661,79,303,553,153,269,71,540,347,443,376,904,338
|
||||
51,806,540,216,552,334,739,329,359,64,381,281,258,419,199,458,495,355,321,324
|
||||
748,467,179,281,503,309,181,603,195,949,339,477,210,540,949,591,164,720,689,902
|
||||
51,477,540,186,829,811,126,692,764,939,892,256,158,612,69,139,309,376,602,119
|
||||
812,870,495,186,202,502,711,137,525,859,274,667,201,24,597,609,435,528,662,708
|
||||
142,216,327,807,370,899,360,828,595,717,307,334,932,764,864,193,774,870,691,934
|
||||
686,862,858,720,75,188,223,522,401,467,359,603,144,766,63,223,152,161,371,889
|
||||
829,859,946,585,315,120,890,310,538,682,371,853,465,706,820,541,913,819,654,562
|
||||
911,743,68,258,354,396,459,947,626,741,218,771,264,674,378,612,310,120,831,394
|
||||
214,397,265,477,814,759,467,656,375,193,811,909,709,342,347,77,744,481,459,943
|
||||
864,690,865,437,611,312,150,366,546,162,98,823,152,166,398,736,933,426,177,520
|
||||
379,887,460,281,746,870,345,457,144,272,421,457,746,899,23,176,200,607,668,159
|
||||
329,158,314,472,576,393,251,545,537,170,467,454,222,427,267,67,809,220,548,466
|
||||
147,894,56,813,738,60,474,163,370,809,250,393,95,666,466,203,418,419,438,400
|
||||
423,302,705,250,943,763,335,194,368,164,897,548,177,406,395,737,907,590,425,520
|
||||
154,472,859,808,654,273,73,344,615,311,297,299,474,80,351,996,315,299,399,528
|
||||
486,67,903,223,890,434,355,298,216,487,774,189,881,765,764,885,891,310,525,488
|
||||
280,73,660,337,156,281,870,710,657,435,539,150,72,203,638,147,901,799,766,933
|
||||
818,650,184,831,613,806,308,658,944,200,937,356,434,148,183,325,532,947,689,127
|
||||
178,553,221,556,391,385,147,802,504,71,815,543,996,474,61,304,813,390,437,701
|
||||
466,770,737,530,688,184,82,259,172,329,719,192,380,498,187,465,467,887,197,426
|
||||
425,503,935,419,392,905,945,153,273,653,943,389,495,182,893,368,175,690,734,484
|
||||
815,541,581,267,586,717,499,589,307,358,767,217,62,897,603,593,430,479,839,533
|
||||
642,269,435,435,500,253,178,808,269,461,669,456,71,316,710,819,428,501,594,716
|
||||
434,468,522,317,119,317,247,258,590,712,860,456,120,742,765,198,940,254,430,476
|
||||
322,327,298,534,147,717,221,261,631,423,901,479,269,712,260,194,250,355,805,63
|
||||
773,145,701,912,706,308,651,213,124,346,685,175,899,936,310,907,314,937,739,319
|
||||
374,698,739,70,435,354,892,250,464,151,309,658,262,335,144,371,553,70,492,691
|
||||
906,217,769,134,830,75,462,522,469,206,803,56,715,911,86,386,898,899,136,178
|
||||
537,804,891,527,302,277,369,885,550,272,769,147,275,350,315,297,653,327,109,255
|
||||
626,64,337,452,737,435,650,539,277,351,352,744,933,178,651,314,768,401,605,199
|
||||
378,395,278,889,689,306,720,467,93,369,328,599,461,150,530,68,261,454,184,943
|
||||
721,578,742,860,454,801,59,524,295,587,438,626,602,547,70,686,554,122,527,209
|
||||
588,146,385,538,298,270,546,353,975,911,144,479,77,475,51,767,767,528,527,165
|
||||
581,14,389,609,434,666,380,432,146,496,158,319,80,254,295,900,164,219,520,885
|
||||
655,710,305,894,202,495,832,469,435,613,149,261,166,832,815,901,873,79,944,377
|
||||
806,670,592,699,645,161,144,161,466,307,78,687,534,157,57,543,457,911,539,934
|
||||
720,378,859,726,825,718,595,888,605,146,365,743,594,457,433,535,503,694,210,819
|
||||
360,465,605,595,829,345,807,597,173,280,69,485,168,831,180,175,150,476,437,198
|
||||
498,246,194,801,183,539,690,613,265,146,854,540,142,892,945,279,501,377,303,266
|
||||
701,656,351,137,345,128,819,374,713,540,819,775,614,603,824,743,64,582,687,197
|
||||
804,54,54,432,156,764,760,602,424,773,824,399,689,153,891,458,626,665,887,907
|
||||
892,606,504,359,158,260,392,467,163,276,389,332,208,549,378,719,322,538,908,397
|
||||
142,859,630,255,906,74,73,462,695,692,368,295,829,657,538,316,901,457,310,253
|
||||
86,685,357,390,372,549,370,379,550,864,539,933,203,54,273,605,329,171,486,155
|
||||
249,289,597,167,703,187,357,763,745,690,189,389,377,393,313,609,607,603,340,223
|
||||
995,693,420,497,57,134,811,252,686,776,495,318,314,341,394,79,314,668,468,177
|
||||
462,802,5,270,805,805,552,595,340,819,682,827,215,939,652,656,704,910,524,348
|
||||
552,690,853,266,324,655,378,165,179,391,598,149,355,418,549,669,896,482,777,899
|
||||
650,500,521,825,203,594,529,51,540,367,181,900,162,846,178,553,341,830,399,703
|
||||
700,654,348,661,772,729,812,481,368,370,467,547,432,484,504,737,249,161,165,500
|
||||
473,356,357,763,51,525,571,418,162,438,682,252,343,822,308,461,53,170,386,333
|
||||
817,741,340,903,386,699,670,933,265,712,303,377,705,311,702,186,392,987,904,609
|
||||
375,910,352,887,746,769,656,668,888,605,484,433,523,854,554,547,80,250,570,477
|
||||
717,384,459,586,265,434,433,74,136,434,817,168,2,581,258,60,220,909,156,78
|
||||
815,713,97,668,498,323,397,169,122,897,602,299,736,897,182,906,811,907,767,221
|
||||
304,295,596,988,587,70,817,138,478,764,942,66,896,253,257,832,370,471,909,163
|
||||
324,698,764,184,153,152,462,186,424,855,614,185,381,238,344,855,609,891,193,472
|
||||
693,457,531,3,220,182,366,669,207,302,707,687,798,887,695,609,55,267,538,303
|
||||
711,473,468,321,439,549,655,456,475,71,612,721,23,191,374,541,665,156,350,328
|
||||
422,363,266,300,892,889,272,741,864,65,250,60,591,856,664,537,375,457,455,905
|
||||
207,161,890,542,64,154,203,496,80,864,157,294,536,298,462,175,321,521,199,803
|
||||
693,523,472,538,523,201,430,172,220,371,80,548,105,933,946,943,686,343,739,652
|
||||
682,803,520,816,313,523,827,300,547,807,613,857,350,391,611,863,361,596,181,909
|
||||
625,266,799,547,68,911,174,192,122,694,599,379,277,390,463,53,341,209,488,317
|
||||
905,331,934,712,281,946,435,186,169,806,499,859,724,398,737,885,693,433,693,158
|
||||
476,771,334,802,581,934,731,719,387,669,662,668,938,255,532,706,57,811,773,203
|
||||
53,459,202,913,476,588,287,700,181,69,182,768,498,350,472,147,664,340,605,798
|
||||
382,174,338,373,554,536,75,906,328,397,342,765,984,801,139,345,692,692,281,366
|
||||
428,894,308,623,145,542,358,170,821,257,535,582,214,120,710,593,171,221,583,369
|
||||
54,767,151,756,458,380,271,260,803,197,427,262,905,803,773,78,533,462,537,899
|
||||
67,881,298,207,210,320,321,597,261,829,745,770,534,153,815,223,372,611,488,161
|
||||
134,346,715,470,439,633,318,554,454,800,336,524,807,469,52,525,58,896,140,496
|
||||
316,356,366,896,660,252,736,135,169,458,653,533,268,299,999,374,194,134,375,191
|
||||
467,939,168,385,359,774,342,383,547,389,251,461,718,64,867,171,821,171,483,606
|
||||
720,386,186,379,258,716,345,737,768,723,478,584,156,333,821,283,934,138,419,597
|
||||
531,160,169,889,608,207,822,459,892,858,431,327,393,656,653,601,534,706,163,1
|
||||
194,501,60,223,321,165,718,464,823,775,500,554,711,269,442,499,814,798,379,77
|
||||
613,540,191,746,702,551,179,932,323,605,808,867,346,743,532,214,92,932,892,397
|
||||
715,377,503,713,906,541,249,424,120,439,392,395,361,719,867,399,863,463,932,718
|
||||
183,816,650,170,862,393,466,869,665,718,818,299,579,538,530,401,438,743,594,366
|
||||
59,126,354,806,208,196,77,719,61,162,604,470,260,504,275,901,320,215,549,467
|
||||
460,311,185,169,466,553,150,997,342,418,583,50,344,537,495,693,382,598,318,146
|
||||
689,725,373,553,191,175,885,353,207,822,775,530,703,774,390,353,171,585,556,333
|
||||
250,591,337,820,335,338,504,69,668,905,657,375,705,9,256,738,169,196,808,803
|
||||
674,154,468,382,716,435,397,462,935,739,531,399,477,526,268,598,657,261,611,295
|
||||
726,888,173,64,203,154,179,595,312,936,188,380,207,772,308,273,712,464,894,202
|
||||
59,553,685,298,741,597,312,273,596,688,428,321,167,363,267,890,74,165,706,138
|
||||
117,121,538,372,135,270,140,712,296,495,249,56,190,65,949,369,773,276,435,265
|
||||
540,813,931,83,59,268,701,936,342,323,713,743,312,327,827,896,266,261,590,69
|
||||
893,337,165,874,199,719,342,386,328,485,612,533,281,76,861,652,900,821,393,611
|
||||
436,51,742,259,661,188,437,606,737,175,9,769,399,343,742,585,337,775,268,61
|
||||
66,306,205,705,660,550,388,473,198,931,436,801,830,294,706,433,944,185,169,908
|
||||
870,831,151,892,654,690,255,543,162,167,168,221,355,96,178,829,539,653,314,142
|
||||
310,75,267,824,693,209,458,714,14,176,71,420,393,214,169,79,686,200,424,265
|
||||
588,259,219,315,550,374,741,436,714,368,353,191,537,658,127,549,522,329,460,718
|
||||
688,807,828,475,215,804,332,51,473,889,273,581,483,599,183,276,291,935,341,262
|
||||
71,525,597,893,828,545,708,307,367,303,325,251,686,586,197,608,391,821,355,2
|
||||
23,905,719,495,166,715,774,554,810,737,217,948,198,135,278,691,267,458,421,711
|
||||
420,806,207,192,353,352,711,868,464,277,811,168,713,320,984,326,300,354,583,700
|
||||
314,329,626,344,550,424,611,743,520,855,462,771,369,719,682,476,557,381,208,149
|
||||
379,58,80,809,391,540,270,296,365,269,527,380,937,489,337,581,498,668,258,401
|
||||
983,427,808,278,859,152,667,213,775,320,357,697,305,685,799,522,553,530,594,183
|
||||
690,913,853,600,197,804,874,190,427,860,830,741,400,501,822,943,553,376,941,696
|
||||
811,150,314,312,823,531,704,693,700,942,264,164,695,938,497,860,500,856,258,642
|
||||
209,253,815,431,601,382,277,375,167,810,591,318,906,178,611,203,417,886,526,698
|
||||
536,541,436,813,600,593,939,763,175,210,945,384,295,739,151,201,431,582,129,715
|
||||
464,709,463,317,663,472,547,715,563,458,606,771,605,626,186,859,866,304,253,821
|
||||
63,79,423,188,819,616,553,774,588,142,279,477,343,68,180,155,252,736,302,905
|
||||
333,701,815,398,824,336,305,690,467,142,202,378,127,140,820,481,607,661,312,533
|
||||
596,211,554,742,595,906,273,340,829,272,855,770,912,311,814,76,748,348,370,259
|
||||
219,906,363,803,350,350,769,525,280,430,767,398,332,155,358,556,864,531,266,535
|
||||
823,692,712,905,212,865,603,555,383,610,162,145,722,792,600,381,168,869,471,433
|
||||
891,589,177,194,429,338,344,372,162,436,477,821,388,259,369,864,695,64,691,997
|
||||
744,486,284,530,372,603,765,169,305,432,454,204,344,212,181,693,892,707,948,172
|
||||
521,266,317,860,487,250,275,122,888,61,430,327,636,593,477,858,461,476,865,464
|
||||
462,537,894,889,700,763,171,482,298,223,822,931,155,498,159,891,897,319,361,265
|
||||
520,768,531,935,476,595,668,77,710,855,183,805,659,939,721,359,270,332,391,171
|
||||
326,717,399,474,297,706,431,522,598,799,533,706,894,817,289,935,669,482,597,394
|
||||
197,496,686,545,349,716,167,55,866,931,477,310,716,427,168,73,892,282,553,864
|
||||
887,223,159,655,458,889,607,331,175,464,495,143,540,865,54,811,370,67,680,398
|
||||
170,343,418,466,549,373,80,78,695,310,302,594,375,731,168,814,146,460,704,71
|
||||
419,888,352,338,898,478,820,589,948,421,667,307,607,174,933,819,599,595,700,12
|
||||
605,463,353,821,539,862,594,596,327,556,152,372,894,309,435,11,581,801,432,159
|
||||
313,389,774,272,908,811,890,822,815,709,270,422,145,660,460,167,128,251,317,899
|
||||
667,316,458,259,67,400,168,60,705,5,696,688,193,355,431,137,814,219,477,470
|
||||
343,0,59,592,771,813,502,654,682,720,338,55,933,422,376,457,741,694,174,151
|
||||
598,714,253,606,854,399,357,668,148,471,270,194,378,702,213,79,532,799,634,810
|
||||
936,366,53,775,861,329,691,765,397,626,861,164,190,531,690,354,310,322,753,596
|
||||
279,343,157,416,654,381,768,551,427,737,64,609,742,503,421,457,252,317,827,497
|
||||
547,222,212,163,691,179,346,813,617,723,936,487,868,768,938,819,581,396,172,221
|
||||
932,773,214,742,370,717,63,61,300,737,719,869,480,278,460,718,224,823,590,600
|
||||
398,485,350,222,739,198,211,472,590,984,139,354,615,664,144,591,742,931,590,395
|
||||
419,865,800,355,805,613,668,596,545,469,197,654,659,452,389,340,262,185,486,433
|
||||
814,160,70,217,768,176,938,582,53,374,587,552,651,936,592,439,912,995,484,369
|
||||
545,386,713,594,500,54,268,610,220,354,810,275,548,374,454,198,524,593,877,897
|
||||
371,680,176,818,433,66,801,340,527,302,187,655,664,302,454,534,887,909,911,313
|
||||
203,189,687,683,50,53,300,263,99,336,399,166,540,480,717,329,890,704,691,318
|
||||
701,254,400,218,78,398,613,931,58,531,148,651,481,15,703,425,524,154,534,554
|
||||
822,192,207,222,830,295,894,187,599,135,798,933,894,253,822,423,383,170,438,288
|
||||
772,188,73,486,129,78,897,595,426,486,481,772,652,266,548,187,892,692,534,256
|
8
2020/inputs/day_17
Normal file
8
2020/inputs/day_17
Normal file
@@ -0,0 +1,8 @@
|
||||
##.#####
|
||||
#.##..#.
|
||||
.##...##
|
||||
###.#...
|
||||
.#######
|
||||
##....##
|
||||
###.###.
|
||||
.#.#.#..
|
371
2020/inputs/day_18
Normal file
371
2020/inputs/day_18
Normal file
@@ -0,0 +1,371 @@
|
||||
5 + 6 * 9 + 5 + 5 + (7 * 2)
|
||||
2 + (3 + 7 + 7) * 5 + 9 + (5 + (4 + 5 + 3 + 6) + 8 * 5 + (7 + 4 + 7 + 6 + 9) + 9)
|
||||
(5 * 4 + 7 + 4 + 8) + 9 * ((5 * 4) + 2 + (6 + 2 + 8 + 7 + 4 + 5)) * 5
|
||||
4 * ((4 + 9 + 3 * 3 * 5) * 3 + 2 + 2 * (9 * 2 + 3)) + 5 * ((8 * 3 * 6) + 9 * 4 + (5 + 4 * 7 + 7)) * 7 * (9 + 2 * 2)
|
||||
5 * 6 + ((8 + 9) * 5 * 9 + 4 + (9 + 3 * 9))
|
||||
(3 * (3 + 3) * 9 + (6 + 9 * 8) + 5) + 5
|
||||
6 * (9 * 6 * 9)
|
||||
4 * 3 + (9 + (8 * 2 * 3 * 4) * (6 * 8 + 5 + 3 + 4)) + (3 + 7 + (7 * 6 + 2) * 6 + (4 + 6 + 5) * (3 + 7)) + 6 * (8 * 6 + 7 * 8 * 9 + 2)
|
||||
5 * (2 + 3 * 4 + 3 + (4 * 4 + 3))
|
||||
9 * 2 * (5 * (8 * 7 * 3))
|
||||
(6 * 9) * 6 + 7 * 8 + 5
|
||||
5 * 4 * 9 + 6 * 9 * (4 * 7 * 2 * 3 + 6)
|
||||
3 + 9
|
||||
2 + 6 * 7 * (8 * 3 * 5 + 7 * (7 * 8 * 6)) * 3
|
||||
5 + 6 + (8 * 4 * 7 + 2 + 4 * 5) * (3 * 9 + 3 + (3 * 2)) * 9
|
||||
4 + 7 * 7 * 2 * (2 * 6 + (9 + 4 + 8))
|
||||
4 + 4 * (7 * (5 + 3 + 8 * 6) + 9 + (4 * 7 + 9 + 3 + 4) + 6) + 5
|
||||
5 * (4 + 8 * (8 * 5 + 5 * 6 + 2) * (9 * 4 * 3)) + 6 + 5
|
||||
3 * ((3 + 5 * 7) + 8 * 2 * 5) + 5 + (3 + 7 * (5 * 9 + 3 + 7 + 7) * 2)
|
||||
2 + (5 * 7 + 9) + 2 + 2
|
||||
((3 * 9 + 6) + 7 + 7 + 8 * 6) + 5 + 5 + 9
|
||||
(8 + 3 * 6) * 7 + 2
|
||||
9 + (9 * 7 + 7 * 4 * 7 * (6 * 7 * 3)) + 3
|
||||
(3 + 7 + 7) + (5 + (2 * 9 * 3 * 2 * 5 * 3) + 7 * 5) + (7 + 9 + (2 + 7 * 7 * 7)) + (3 + 4) + 5 + (9 + (7 * 8 * 3 + 2 + 3 + 7) + 7)
|
||||
2 + 4 * (8 * 2 * (8 + 8 * 8 * 3 + 3 + 8) * 2) * 8 * 3
|
||||
9 + 4 * (5 + 7 * 4) + 2 * (3 + (9 + 3 * 7 + 5 + 5 + 6) + 4 * 7 + 5)
|
||||
5 + ((4 * 3 * 5) + (2 * 4 + 2 + 9) + 5 + 6 * 9 * 3) + 2 + 2
|
||||
((6 * 8 + 8 + 2) * 4) + 5 + 3 + 4 * 4 + 9
|
||||
7 * (9 + 7 + 4 * 6) + 5 * 6
|
||||
(7 + 7 * (7 + 8)) + 7 + 7
|
||||
9 * (5 + (7 * 6 * 9 + 5 * 3 * 3) * 2 * 4 * (5 + 8 * 8 + 4 * 9) + 3) + 2 + 6 * 4 + (9 + 7 + 2 + 4)
|
||||
4 + (7 * 6 + 5 + 7) + 8 + 8 * 4
|
||||
4 + (3 + 3 + 7 * 6 + 3) + (6 * (6 + 8 * 2 + 9 * 4) + 4) + 3
|
||||
((7 * 7) + 4 + 6 + (6 * 4 * 4 * 9 * 5 * 2)) * ((6 + 8 + 9 * 6) + (4 + 5 + 9 * 3) + (3 + 9) + 8)
|
||||
(7 + 7 + 6 + 6 * (2 + 2 * 7 * 9)) * 4 * 6 + 3 * (3 * (5 * 3 * 3 * 3 + 3) * (3 + 7 * 9) + 8 * 6 + 8) + 8
|
||||
(6 * 9 + 8 * 4 + 6) + 8 * 6
|
||||
8 + 2 * (9 * 2 * 7 + 9 * 8) + 2 * 3
|
||||
((7 + 7 + 8) + 6 * 7 * (6 + 3 * 7 + 7 * 9 * 4)) + 7 * 7 + 5 + 3
|
||||
7 * 2 + (8 * 8) * 8 * 5 * (5 * 2 * 2)
|
||||
(8 * 7 + 9) * 2 + 6 * 8 * 2 * 2
|
||||
9 + ((9 + 9 + 2 * 4 * 4 + 6) + 8 + (3 + 3 + 5 + 6 + 9) * 7) + 8 + 5 + 4 * 7
|
||||
4 + 7 * (5 * 4 + 7 * 7 + 6)
|
||||
(6 * 4 + 2) * 8
|
||||
3 * 7 * 8 + (5 * 9 + 2 + 2 + 4)
|
||||
(3 + (2 * 6) * 5 * 3 * 3 * 5) + (5 * 6 * 7)
|
||||
8 * 2 * 7 + (6 + 6 * (5 + 7)) * 8
|
||||
(2 + 8) + (9 + 9 * 5 + 2 * 8 + 7) + 7 + 9 + 6 + 3
|
||||
2 + ((4 * 7 + 5 + 6) + 2)
|
||||
4 + 4 * (3 * 7 * 4 * 6 + 3) * (8 + 5 + 5 * 6 + 6 + 7)
|
||||
9 * (9 * 9 + 6) * 8 + 7 + 9 * 7
|
||||
(7 + (5 * 8 + 2 + 2) * (8 * 3 * 4 * 3 + 4 + 2)) + (8 + 6 * (2 * 3)) + (7 + 6) + ((9 * 6 * 9 + 8) + 5 * 6 + 9) + 8 * 3
|
||||
(9 * 5 * 7 + (9 + 5) + (2 + 5 + 9 + 2 * 6 + 8)) * (7 + 6 + 3 + 4) + 8 + (2 * 8 + 7) * 2
|
||||
((5 * 6 + 2 + 3 * 9 + 5) + 4 + 8) * 7 + (3 * 7 * 2 * 4 + 3)
|
||||
4 + 2 * (3 * 5 * 3 + 4)
|
||||
(2 * 3 + (4 * 4 * 5) + (2 + 7) * 8 + 2) * 3
|
||||
5 + ((7 + 7) + (6 + 6) + 2 * 3) + 4 * ((9 * 2) * 3 + 3 + (4 + 8 * 7 + 3 * 6) * 6)
|
||||
((3 * 2 * 5) + 4 + 4 * 8) * (2 * (7 + 9 + 4 + 6)) + 7 * (9 + (9 + 6 * 4 + 6 + 2 * 4) * 3)
|
||||
4 * 3 * (9 + (8 + 5 + 6)) + 7 * 4 * ((4 + 2) * 9 + 6 * (5 + 4) * 6)
|
||||
4 + (7 + 7 * 6 + 3 * 9) * ((4 + 2 * 4 + 4 + 9 + 7) * 5 * 9 * (3 + 7 + 4 * 4) + (4 * 8 * 7)) + 3
|
||||
(2 + (5 * 8 + 3) * 9 + 5) * 9 * 7 + (6 + 2 * 8 * 2)
|
||||
9 * (8 + 8 + (4 + 4 + 2 + 7)) + 6 * 5
|
||||
6 * 9 + 2 * (8 * 5 * 5) * (2 + 4)
|
||||
3 * 3 + 4
|
||||
3 + 3 * ((4 * 4 * 4) + (2 * 5 * 9 * 4 + 4) * 9) * 9 * 5
|
||||
(3 + (5 + 7) + 4 + 4 * (4 * 2) + 3) + (3 + 6)
|
||||
6 * ((5 + 6 * 4 + 9 + 4 * 9) * (2 + 8)) * 6 + 8 * 6
|
||||
8 * ((2 * 3) + 9) + 2 * 6
|
||||
5 * (3 * 7 + (7 + 9 * 3 + 8 * 4) + 9 + 5) * 4
|
||||
4 * (5 + 2 + 3 * 2 + 4 + 9) * 4 * (2 + 6 * 2 * (4 + 9) * (8 + 6 + 4 * 4 + 7)) + 5
|
||||
7 * ((7 * 8 + 2 + 4 + 7) + 9 + 7 * 7 + 5) + 2 + 9 + 3 * 3
|
||||
(7 + 2 * 2 + (9 * 6 * 4)) * 8 * 9
|
||||
4 * (5 + 5 * 2 * (4 * 7) + (9 + 9 + 6 * 6 + 8 + 9) + 2) + 6 + 2
|
||||
2 + 6 + (7 + 9 * (3 * 4 * 3 * 5 * 7) + 7 + (7 + 5) + 2) + 5 * (7 + 9) + 9
|
||||
9 * (3 * (7 + 5) * 8 + 6) * 9 * 2
|
||||
2 * ((2 * 9 + 7) * 3 + (2 + 4 * 8) + 6 * 6)
|
||||
2 * 7 * ((6 + 7 * 5 * 3) + 9) + 9 + (8 * 8 * (9 * 2 + 2 + 3 + 3) + 2) * 2
|
||||
((8 + 7 * 5) * (2 + 7) * (7 * 8 * 9) * 6 * 2 + 5) + 8 + 6
|
||||
(7 + 3 + 5 + 6 + (7 * 9) + 2) * 5 * 7 + (2 + 5 * 3) + 8 + 4
|
||||
((5 + 6 * 8) + 4 * (5 + 6 + 5 * 4) + (5 + 8) + (5 * 6)) * 3 * (4 + 5 + 6 * 5 * 5 * 2) + 3 + (3 * 8 * (3 * 6) + 8 * (6 * 2 * 2 * 3 * 9 * 9) * 7) + 2
|
||||
3 * 3 * (9 * 2 + 7 + 9 * 5 * 7) * 9 * 3
|
||||
9 + 4 + (5 + 7 * 5)
|
||||
8 + (6 + 4 * 5 + 8 * 4) * 6 + (8 + (6 * 6 * 8 + 3 * 9) * 8) + 4 + 3
|
||||
(8 + 4 * 3 * 4 * (6 + 5) + 9) + 3 + 5 * 9 + 7
|
||||
(8 + 6 * 8 * 3) * 2 * 7 + 6 * (9 + 2)
|
||||
7 * 7 + (5 + 9 * 6) + 7 + (7 + (7 * 8 + 5 * 3 * 5 * 4) * (9 * 7)) + 5
|
||||
7 * 8
|
||||
5 * 6 * 4 + (3 + 4 * 6 * 6) + 3
|
||||
8 + ((4 + 2 * 6 + 2) + (7 * 9 + 9 + 7 * 6))
|
||||
6 + (6 * 8 + 6 + 5 + 6) * 5 * 9
|
||||
7 * ((8 * 6 + 3 * 7 * 9 + 2) * 4 + 5) * 8
|
||||
2 + 5 + (8 * 8 + 4 + 8) + 2
|
||||
4 + 3 + 7 + 5 * 8
|
||||
6 * 4 * (6 + 8 + (8 * 4 + 9) + 4 * (7 * 6 * 4) + 3)
|
||||
6 + 8 + (4 * (5 * 4) * 4 + (2 * 3)) * 4 + 3 * (2 * 9 * 5 * 4 * (8 + 3 * 3 + 8 * 7 + 9))
|
||||
5 + (7 * 3 * 6 + 3 * 2) * ((7 * 3 + 5 + 8) + (9 + 8 + 5 * 4 * 7)) + ((5 + 4 * 3) + 4 * 7) + 2 * (8 * (8 + 7 * 7 + 3 * 6) * 4 * 7 * 4 * 3)
|
||||
9 * (6 * 4 * 2 + (7 + 9 + 7 * 2) + 3 + (5 * 7 + 4)) + 6 * 2
|
||||
(5 * 2 + 7 * 2) + 9 * (3 * 4 * (5 * 2) + 4) * 4
|
||||
(2 * (6 + 9 + 4 + 3) * (9 * 6) * 2) * 8 * 5 * 5 + 6
|
||||
3 * 9 + 9 + 9 * (9 + (8 * 2 * 7 + 3 * 8 + 3)) + 3
|
||||
8 * 3 * 2 + (7 + (3 * 2 * 2)) * (2 * (2 * 4 * 4) * 8)
|
||||
3 + (9 * (7 + 9) + 6 * (3 + 4 + 5 + 5 * 2 + 9)) * (6 + 4 + (6 + 5 * 6 + 6 * 5) + 2 + 2 * 6)
|
||||
((7 * 3 * 3) + 7 + (3 * 4 + 5 * 4 + 7)) + 8 * 3 * 9 * ((7 * 3) + 8 + 7) * 9
|
||||
((2 * 3 + 2 + 9 + 4) + (9 * 2 * 4) * (6 * 5 + 9 * 2 * 7 + 7) * 7 * 9) * 6 * 4 * 5 + 7
|
||||
9 * 2 * 2 + 2 + (3 + 3 + 6 * 2)
|
||||
(7 * 6 * 6) * 2 + 9 + 8 * (7 + 3 + 8 * 7 + (4 + 5 + 3) + 8) + 9
|
||||
2 + 6 + 9 * 3 * (6 * 4 + 9 * 5 + 2)
|
||||
5 * (5 * 2 + 6 + 8 * 8 + 7) + 9 * 5 + 9 * 3
|
||||
9 * (8 + 9 + 8 + (9 * 6))
|
||||
(4 + 8 * 8 * 6 + 4) + 7
|
||||
2 + (8 * (4 * 2 + 6 + 2 + 3 + 6) + 4 * (7 + 4) + 6 * 2) + 8 * 5 * 6 * 8
|
||||
((5 * 7 * 9 * 5 * 8 * 3) * 5) + 5 * 2 * 3 * 7 + 5
|
||||
8 + 4 + 8 + 7
|
||||
3 + 3
|
||||
9 + ((4 + 7 + 8) + 3) + 8 + 9 * 5 * (6 * 5)
|
||||
(2 + 2) + 9 + 8 + 5 + 6 + 7
|
||||
3 + 8 * (7 * 5) + 9
|
||||
5 + (5 + (8 + 3 * 3 + 9 * 7 + 3)) * ((9 * 5 * 8 + 2 + 2 * 7) * 4 * 6 + 4 + 6 * 9)
|
||||
(6 + 5 + 6 * (9 * 2) * 6 * (4 * 5 + 8 * 9)) + 6
|
||||
2 * 4 + ((9 * 2 + 6 + 8) + 4 * (5 + 3 * 3 + 7 * 9 * 6) * (6 + 6 + 4 * 3 * 8) + 7) * 5
|
||||
(6 + 4 * 2 * (8 + 3 + 4 * 4 * 5)) * ((4 * 2 * 5 + 9) * 8 + 3 * 7 * 8) + 7
|
||||
((5 * 6) + (2 * 2 * 8)) * (3 * 4 * 2 * 3) * 6 + 5 + 7
|
||||
2 * 2 + ((5 + 6 * 7 + 5 * 8) * 7 * 7 * 4 + 8) + 6
|
||||
2 + (7 * 4 * 7 + 8 + (8 + 5 + 4 * 9)) * 8 * 2 * 6
|
||||
8 * 4 * ((2 * 8 * 9) * 9) * 8 + (8 + 2) + 9
|
||||
(5 * 9 * (8 + 7 * 3 + 9) * (4 * 6 + 5) * (7 + 2 * 6 + 5 * 2 * 2) * 4) + 5 + ((7 * 6 * 8) * 9 + 8)
|
||||
2 * 7 * (9 + (5 * 2 + 9) + 5 + 4 * 3 + 8) * 6 + (8 + 4 * 9 * 4 * 8 + 4) * ((9 + 6 + 2 * 4 * 8 + 3) * 7 * 8)
|
||||
(8 + 3 * 7 + 7 + 5 + 7) + (6 + 8 * 3 + 8 + 7 + 6) + (5 + 6 * 7 + 6 * 2 * 7) * 6 + 3
|
||||
8 * 5 + 7 + 5 + (2 + 4 * 5 + 2 * 5 * 8)
|
||||
3 + (8 * 5) + 4 * 2 + 7 + (6 * 7 * 8 * (4 * 5 * 5) + 2 + (4 * 8))
|
||||
5 * (7 * 5 * (5 * 4 * 5) + 4 + 4)
|
||||
5 * 9
|
||||
(5 * 9 + 5 * 4) + 4
|
||||
3 + 8 + 9 * (5 + 9 + 9 * 8) * (3 + 3 + 4 + 6 * 3 + 9) * 3
|
||||
(7 * 9 + 6 + (4 + 7 + 7 + 7) * 3) + 3 + 2 * 3 + 8 * 5
|
||||
6 + 6 * 6 + 8 * 9 * 6
|
||||
(8 + 6 * 5 * 4 * 4 + 3) * (8 + 6)
|
||||
2 + 9 * 2 + 3 * ((9 * 3 * 3 + 8 * 4 * 9) * 3 + 7 + 6 + (2 + 6) * 6)
|
||||
(5 * 6 + (2 * 3) + (6 + 8 * 6 * 9 + 7) + 6) + 8 * 3 + ((2 * 4) + 6 * (2 * 8) + (3 * 8 + 3) * 3) * 7
|
||||
4 + (2 + (8 * 5 + 5 * 9 * 7 + 5)) * 4 * 4 * 7 * 9
|
||||
7 + 8 + 6 * (8 + 3 + (9 * 2) + 8 + 8) + (4 + 2)
|
||||
(9 + 4) + (3 * 4) * 6
|
||||
((8 * 5) * 3 + 4) * 3 * 7
|
||||
8 * ((8 + 5 + 7 * 6 + 2) * 7 + 5 + 4 * (2 + 3 + 6 + 6)) * 3 * 5 * ((3 * 5) * 2)
|
||||
7 + 4 + 9 * (3 + 9 * 2 * 8 + (9 * 3)) + 9
|
||||
((8 * 8 * 3 + 9 * 4 + 7) + 8 * 7 + 6) + 5
|
||||
7 * 8 * 7 + 4 * (6 * 5 + 6) * 8
|
||||
3 * (8 * (4 + 8 + 4 + 9)) + 3 + (8 + (8 + 8 + 5 * 6) + 5) * 8 * 7
|
||||
9 + 4 + 9 * (7 + 9 + 2)
|
||||
4 * 9 * 3 + 3 * (3 + (7 * 2 * 7 * 7))
|
||||
(8 * (3 * 8 + 9 * 4 + 2 * 8)) * (2 + (5 * 3 * 6 * 5 + 3 * 4) + 8 + 2)
|
||||
6 + 7 * 9 * (7 * 3 * (8 + 2 * 9 * 3) * (4 + 7) * 9)
|
||||
7 + 3 + (6 + 3 + 9 + 6 + (4 * 9 * 5 + 7 * 9 + 7))
|
||||
3 * 6 + (5 * 7 * (9 + 6 * 8 + 8 * 8 * 5) + 5)
|
||||
4 * ((4 * 9 * 5 * 2) * 8) * (4 * (5 * 6 * 3 * 2) + 2) * 6 + 3 + 4
|
||||
9 + (6 + 4 + (8 + 7 + 9 * 3 * 6 * 8) * 6) + (2 * 8) + 5
|
||||
9 + 9 + 8 * 9 + 9 + 4
|
||||
((7 * 6 + 3 * 9) * 6 + 9 * (8 + 6 + 4 * 6 + 4 + 5) * (4 * 6 + 6 * 7 + 5 + 2) + 4) + 7 + 3 * 5
|
||||
((3 + 4 + 4 + 4 * 2) * 8 + 6 + 6 * (7 + 8 + 4)) + 5 * 6 + 7 + 3
|
||||
(9 + 8 * (7 * 9 * 3 + 5 * 6) * 7 * 9 * 3) * 4 * 7 * (9 * 9) + 5 + (5 * 2 * 7)
|
||||
8 + 3 * 9
|
||||
(4 * 6 + 3 + (2 + 7 + 5 * 3) + (4 + 9 + 6 * 5 + 4)) + (7 + 2 * 4 + 3 * 8 * 7) + 9 + 2 + 6
|
||||
9 + 9 * (2 * 8 * (3 + 3 * 4 * 2)) * 3
|
||||
6 + (2 + (4 * 3 + 8 + 5 * 3) + 8 + 2 * 6 + (8 + 4)) * 9 + 8 * 4
|
||||
(2 * 4 * (2 * 5 + 8 + 6) + (6 + 5 + 7 * 6 + 3 + 3) * 6 + 4) * 6 * 7 * 2 * 6
|
||||
6 * (9 + 8 + 2 * (4 * 5 + 5 * 9 * 2 + 7) * 4 * 5) * 3 * 6 + 8
|
||||
2 + 8 + 8 * (4 * (2 * 6 + 8 + 2 + 4 * 4)) * 7 + 6
|
||||
((8 * 6 + 2) + (4 * 5 + 6 + 2 + 3 + 9)) + (3 + 7) * 2 + 2
|
||||
7 + (4 * 8 * 7) * 8 + (2 * 2 * 3 * 4) + (2 + 7 + 9)
|
||||
(5 * 5 * (6 * 6 * 8 + 7) * 6) + 8 * (7 * (8 * 6 * 7)) * 6 * 5
|
||||
3 * 3 * (2 * 6) + 3 + (4 + 5 * 2 + 7 + 8 * 9) * 4
|
||||
6 * 8 * 6 + 4 * (5 * 2 * 6 + 4 + (7 + 9) + 7) + 3
|
||||
(8 * 7 * 3 * 6) * (7 + 7 + (7 * 2) + 8 * 3) + 7
|
||||
5 * (2 * 8 * 4 + 2 + 9)
|
||||
4 + 5 * 3
|
||||
3 + (5 * 8 * 6) * (8 * 5 * 5 * (3 * 7 * 5 + 6) + 6 + 2) + 2 * 5 + 4
|
||||
4 + 2 * (5 * 5 * 2) + (7 * 3 + 5 + 3 * 8)
|
||||
(4 + 7 + 4 + (6 + 7 + 7)) * (4 * 2 * 2 + (8 * 8 * 6 * 6 + 3)) * (8 + 8 * 5 * 2 * 8)
|
||||
5 + 2 * (2 * 4) * (2 * 6) + 4
|
||||
6 + 5 * (8 + 4) * 4 + 8 + 7
|
||||
4 * 3 + 7 * 4 * 5 + ((5 * 6 + 9 + 5) + 6 * (7 + 2 + 6 + 4) * 8 + (6 * 9 * 9) + 7)
|
||||
4 + ((9 * 8 * 2 * 8 + 8) + 5 * 3) * 8 * 2 + (5 + (2 + 7 + 3 * 4 * 8 + 2) + 4) + 8
|
||||
8 * (6 * 9) * 9 * ((5 * 2 + 2 + 8 * 2 + 3) + 9 * 8 * 7 * 3 + 8) + 6
|
||||
7 + (6 * 5 * 2 + 4 * 5 + (5 * 7 + 8 * 6 + 8)) + 2 + 8
|
||||
(8 * 6 * 3 * (2 + 4 * 6 + 2) * (5 + 9)) + 3 * 6 * (7 * 9)
|
||||
(4 + (2 + 6 * 6 + 4 * 9 * 9)) * ((2 * 7 * 3 * 9) + (6 * 5 + 8 + 5 + 9) * 8 + 5 + 4 + 5) + (9 + 8 * 8 * 5 * 5 + (9 * 6 * 5)) * 9
|
||||
9 * ((7 * 7) + 7 * 9 + 7 + 2) + 5 + 5 + 6
|
||||
5 + 7 + (2 + 4 + 8) * 3 + 3
|
||||
8 + (9 * (3 * 8 + 8 + 9) * (7 * 8 * 2 + 3 * 2 * 2) * 3 * 6 + 7) + 9 + 7 + 5 + 5
|
||||
(7 + 8 * 7) + 7 * ((5 + 4 * 9) * 7 + 6 + 6 + 7 + (3 + 9 * 6 * 3 + 3)) * 5 + 5
|
||||
(4 + 4 + 4 * 4 + 4 * 7) * 4 * ((3 * 4 * 6) + 5 + 2) + 6
|
||||
6 + (2 + 4 + 2 + 4) * 2
|
||||
6 + ((4 + 4 * 4 + 3 + 8) * 4 * 4 + 6) * 7 * 3 * 4
|
||||
6 * 5 + 2 + 7 + 8 * 6
|
||||
9 * 2 + (5 + 8 + 6 * 3 * 9 * 5) * 5
|
||||
8 * 7 + 5
|
||||
(8 * 8 * (7 + 8 + 4) * 8 * 2) + 3 * 4
|
||||
3 + ((9 * 7 * 4 * 3 + 4) + 8 + (3 * 4 * 7) * 5 + (3 * 5 + 7 + 2) + (4 + 9 + 9)) * 3 + 7
|
||||
(3 + 6) * 3 + 6 * (7 * 8 + (7 + 9 * 4) + 6) + 8
|
||||
9 + (2 + 8 + 3 * 9 * 4) + (8 * 9) + 7 + 2 + 2
|
||||
4 * ((9 * 3) + 2)
|
||||
7 + (7 + (9 * 3))
|
||||
6 * 4 + 5 * (4 + (4 + 5 + 4 + 9 + 3 * 2) + 9 + (6 * 2 * 4 * 6 * 8) + 3) + 9 * (6 + 5 + 9)
|
||||
4 * 6 * (3 * 6 * (3 * 5 * 4 + 9)) * ((3 + 6 + 4) + (7 * 2 * 5 * 9 + 4 + 4))
|
||||
((9 * 4 + 8 + 6 * 3 + 6) * 8 + 8 + 2 * 6 * (6 + 5 * 4)) * 5 + 6 + ((9 * 8 * 4) + 9 + 8 + 9 * 2 * 6) + 8
|
||||
7 + 8 * ((2 * 7) + 9 * 8 + 8 + 9) + 9
|
||||
(9 + 2 * 6 * (8 + 5 + 8 + 5) * 7) * (6 + 9 * 6 + 8 * 9 * 7)
|
||||
(7 + 5 + 8 * 4 + 8 + 5) + 5 * (3 * 2 + 7 + 5 + 8) * 9 * 6 * 8
|
||||
7 * 2 * 3 + 6 + (8 * (3 * 6) + 6 + (6 + 4 * 9 + 5 * 7 + 9))
|
||||
7 * (6 * (5 * 7) * 8 + 5) * (2 * 5 + 7 * 3 * 3) * 7 * 3 * (7 * 2 * 8)
|
||||
9 * 2 + 8 * (7 * 4 * 8 * 2 + 4 * (9 + 2 + 6)) + 2 + 7
|
||||
4 + (3 + 8 * 9 + 7) + 2 * 8 * 6 + (7 * 8)
|
||||
(3 * (2 + 6 * 2 + 9 * 5) * 9) + 4 + 2 * 7
|
||||
4 * 4 + 8 * 3 + 7
|
||||
(2 * 8 * (2 * 3 * 5 * 9 * 6 + 7) * 4 * 6 * 8) + 3
|
||||
2 * (9 * 7 + 5 + 4 + (3 + 7 + 6 + 8 + 5)) * 8 * (3 * 7 + 7) + 9
|
||||
8 + 9 + 7 * 9
|
||||
((3 * 2 * 5 * 6 * 7) + 6) * (3 * 9 * 4 * 4 + 6) * 2 + 8
|
||||
(4 + 3) * (3 * 9 * 4) + 5
|
||||
8 + 2 * 6 + 6
|
||||
(8 + 4 * 3 + 3) * (8 * (7 + 6 + 6) + 7 + (9 + 9 * 5)) * 8 + 2
|
||||
8 * 4 + 2 * 6 + 9 + ((7 * 5 + 5) + 2)
|
||||
(6 + 9 + 8) + ((4 * 3 + 9 * 6 + 3) * 3 + 3 * 4 * (5 + 5 + 6)) * 6 + 9 + 7 * (6 + 8 + 5 * 5)
|
||||
(6 + 9 + (5 + 2) * (9 * 4 * 5 + 9 + 3 + 9) + 3) * 8 + 8 * 7 + 3
|
||||
(9 * 6 + 9 * 7) + (5 * (7 + 6 * 7 + 2) + (6 + 8 + 9 + 4) + 2 * 4) + (2 + 6 + 4 + 7)
|
||||
4 + ((2 * 5 * 7 + 8 + 7 + 7) * 6 + (6 * 2 * 2 * 9) + 8) * 4 * 3 + 3 * 5
|
||||
5 + (8 + 8 * 2) + 3 + 5 + (7 * 8 * 9 + 2) * 2
|
||||
((5 + 7 * 7 * 6) * 9 * 2) * 3 * 2 + 9 + 7 * (6 + 4 + 6 + (5 * 8 * 2 + 8 + 2) + 9 * 7)
|
||||
7 * (2 + 3 + (5 * 9 + 8 * 9 * 5 + 4) + 4 * 8)
|
||||
(8 * 7 + 8 + 8) + 7 + (4 * 7) + 4 + 8
|
||||
6 + 6 + 4 * 8
|
||||
6 + 5 + 9 + 4 + 5 * (8 + 5 + 2 + 4 + 9 + 7)
|
||||
(2 * 9 + 3 + 7) * 9 * 7 + 8 + 9
|
||||
(2 + 7 * 3) + 7 + 8 * 4
|
||||
9 + (5 * 2) + 6 + 8 + ((5 + 2) + 7)
|
||||
8 * 9 * 6 * (9 + 9 + 4 * 8 + 7 * 5) + 7
|
||||
((3 * 9 + 6) * 2 + 2 + 6 * 6 * 6) + 4
|
||||
4 * 4 * 7 + 5 * 8 + 2
|
||||
9 * (3 + (3 + 7 + 6 * 3 * 8))
|
||||
6 * 6 * 9 * (3 * (5 + 9 * 9) * 8 + 9 * 8 + 2) + 4
|
||||
(3 * 9 * 4 * 8) + 5 + (9 * 5 * 5) + 7 + 2 * 4
|
||||
5 * 8 * 4 * (5 * 6 * 8) * 3 * (2 + 2)
|
||||
(8 + 6 + 3) + 7 + (5 + 9 * (9 + 7 + 4) * (2 * 5 * 6 * 8) + 4) * 5 + (9 * (5 + 6 + 6) * 8)
|
||||
7 + 2 * 4 + 7 * 3
|
||||
2 * 7 * 2 * (4 + 6 * (4 + 7) * 9 + (9 * 4 + 9 + 4))
|
||||
(8 + 6 * 4 + 9 * 7 + (7 * 9 + 5)) + 2 + 2
|
||||
3 + 2 * 3 + (2 + 6 + 6 + (8 * 9 + 4 + 9 + 8 + 9)) * (2 + 4 + 7 * 3 + 6 * 2)
|
||||
5 * 7 * ((7 + 9 * 8 * 7) + 8 + 9) * 5 * 7 * 2
|
||||
3 * (6 * 5) * 2 * 6
|
||||
6 * (4 * (2 * 2 + 2 + 3 + 7) * 7 + 9 * 6) + 3 + 6
|
||||
8 * 6 + (9 + 7) + 4 + ((4 * 2 + 9 * 2) + (5 * 5) + (7 + 5 + 6) * (5 * 5 * 8 + 8 * 5 * 5) + 6) + 4
|
||||
8 + 9 * 3 * 9 + ((9 + 3 + 8) + (8 + 8 + 3 * 3) * 2 * 3 * (4 * 9) * (6 * 6 + 9 + 3 + 4))
|
||||
5 * 3 * (6 * (9 + 5 * 8) * 9)
|
||||
9 * (9 * 4 + 4 + 7) + (6 * 4 * 6) * (3 * 8 * 3 + 4)
|
||||
(9 + 7 + 6 + 8 * 3) * 7 + (2 + 7) + (2 + 7 * (5 * 3 + 9) + (6 + 8 * 4 + 4 + 2 * 5))
|
||||
9 * ((8 * 5 * 5 + 5) * (2 + 7) * 9 + (4 + 5 + 3 + 2 * 5) + 2 + 5) + 9 * 4
|
||||
6 + ((2 * 6 * 8) * 3 * 4 + 3 + 7) + 8 + 2 + 7 + 3
|
||||
4 + (8 * 9 + 7 + 6) * (7 * 7 + 6 + 2 * (6 * 6 * 4 * 6 * 9) * 8) + 2
|
||||
(9 * (8 + 9 + 5 + 8) + 7 * 6 * (9 * 3 + 5 + 3 + 2)) + (2 + (2 + 4 * 5) + 6 * (6 * 3 + 7 + 7) + 2) + 7 + 8 + 6
|
||||
3 + 5 + 5 * 5 + ((6 * 7 + 9 + 4 * 2) * 6 * 8 + 6)
|
||||
(2 + 8) * 3 + 7 * 6
|
||||
4 + 5 + (8 * (5 * 8 + 4) * 9 + (6 * 6) + (5 + 7)) + 2
|
||||
6 * 7 + 5 + (9 * 2 + 2 * 7 * 4) * 2 + 2
|
||||
3 * (3 + (3 + 9) + 3 + 9 + 3) + 6 * 8 + 5 * 4
|
||||
8 + ((8 * 6 + 5 * 6) + 7 + 3 * 8 + 9 * (2 + 6 + 3 + 8 + 6))
|
||||
5 * 8 + (7 + (9 + 3 + 3) * 6 * 4) + 9
|
||||
2 + 4 + 5 * 2 * 9 * (4 + 9 * 3)
|
||||
2 * 6 + (4 * 7 + 6) + 9 + 9 + 4
|
||||
(7 * 9 * 4 + 3) + 9 + 6 * (7 + 6 * 8) + 9
|
||||
6 + (4 + (3 + 3 + 6 + 2) + (4 + 9 * 7 + 4 + 8) * 5 * 5) + 4
|
||||
4 * 7 + (2 + 2)
|
||||
(3 + 2 * 8 * 8 + 3 + 3) + 5 + 7 * 5
|
||||
(2 * 5 + (8 * 6 + 2 + 4 + 4 + 8)) * 2 * (8 + 8 * 5) + (2 + 9 * (9 * 3) * (6 * 7 + 7) * 2 + 4) * 6
|
||||
5 + 2 * 9 * 8 + 5 * ((7 * 8 + 3 * 6) + 2 * 6 + 2)
|
||||
7 * 2 + (8 * 5) * 7 + (2 + 2 + 4)
|
||||
5 * 6 + 8 * ((2 + 3 + 6 + 8 * 8) * 8 + 5)
|
||||
4 + 4 * 4 + (7 * 4)
|
||||
(7 * 3 * 4 * 8) + 3 * 2 + 8 + 2 + 3
|
||||
2 * 8 + (2 * 4 * 6 + 8) + 2 * 7
|
||||
(5 + (7 + 5) + 6 + (7 + 7 + 7 * 8 + 5 + 4) + (8 * 8)) + 8 * (7 * 9 + 8) * 6 + 3 * (9 + 6 * 3)
|
||||
9 * 9 + ((6 + 4 + 6 * 6) + 9 + 6) * (8 + 4 + 4 * (3 * 3 + 8) * 3 * 9) + 6 * 2
|
||||
(9 + (8 * 7 + 4 * 5 + 8 + 9)) * ((2 + 8 * 2 + 2) * 8 + 2) * 9 + (2 + 9) + (2 * 4 * (3 + 4 * 3 + 7 * 4 * 7))
|
||||
2 * 6 * 3 * 7 * (4 + 6 + 8)
|
||||
5 * 8 + (6 * 5 * 5 + 9 * (9 * 2 * 2 * 5 + 5 * 4)) + 4 * 2 + 8
|
||||
(9 + 7 + 5) + 2 + 9 + 2 + (6 * 9 * 9)
|
||||
9 + ((7 * 4) + 9 + (3 * 5)) * 8 * 6 * 6 * (3 + 3 + (8 * 9) + 7)
|
||||
5 + 4 + 3 + 3 * 9 * 5
|
||||
6 + 6 + ((5 + 4 + 6 + 9 * 5 + 4) * (8 * 9 * 8) + 3 + (8 + 2 * 4 + 4 + 3)) + 9
|
||||
3 + 5 * 4 * 3 * (5 * 3) + 9
|
||||
2 * 5 * 3 + 6 * (8 + (5 * 4 + 4 * 7 * 6 + 8) + 4 * 7) * 6
|
||||
2 * ((3 * 2) + 7 * 9 + 7 + 8 * 6) * (9 + 8) * 8 * 8
|
||||
3 * ((7 * 6 + 9) + (8 * 9 + 9 + 2 + 3)) * 5 + 2 + (3 * (6 * 6 + 7 * 9 + 8 * 9))
|
||||
3 * 3 + (8 + (8 * 6 * 9 * 8 + 5 + 3) + 5 * 2 * 5 + 7)
|
||||
3 + (6 + 5 * (4 * 2) + 8 * 3 + 6)
|
||||
7 + 7 + 7 * 6 + 3 * ((2 + 5 + 4 * 9 + 2 * 9) * 5 * (8 * 4) + (9 + 5 * 8 + 8 + 6) * 4 * 5)
|
||||
9 + (6 + 6 * (7 * 4 + 2 * 8 * 5))
|
||||
(7 + (5 + 3 + 5 + 6 * 5)) * 8 + 9 * 8 + 5
|
||||
(6 * 2 * 7) * (3 + 3 * 7 + (8 * 3 + 7 * 4 + 5)) + 7 * 3 + 4 + 2
|
||||
4 * 9 * 3 + (3 * (3 + 4) * 3) * (2 * 5) + (4 + 4 * 2 * 4 * 7)
|
||||
(8 + (6 * 7 + 5 * 3) + 5 * 4 + 7 * 8) * 3 + (6 * 9 + 7)
|
||||
5 * 6 * 5 + 4 * 9 + (3 + 3 + 8 + 4)
|
||||
(6 + 4 + 7 * 8) + 5 * 4 * 9
|
||||
8 + (7 + 5 * 4 + 8 + 9 * 6) * 8 + 4
|
||||
3 + 6 * 8 + 3 + (3 * 3 + 2 * 9) * 8
|
||||
7 + 6 * 4 + 4
|
||||
9 + 3 + ((2 + 8 * 5 * 5 + 2) * (8 * 7 + 7 * 3))
|
||||
9 * 9 * (6 + (2 * 9 + 4 * 8 + 6) * 2 + 5) + (7 * 3 * 7 * 4)
|
||||
4 * ((5 * 2 + 9) + 9) * 2 * 3 + (2 + (4 + 4 * 7) * 2 + 6)
|
||||
3 + 6 + (8 * 7 * (7 * 8) + 3) + 5
|
||||
(6 + (9 + 8 + 3 * 8 + 8 + 7) * (4 * 3 + 4 * 3) * 6 + (9 * 8 * 2)) * (6 * 5 + 4 * 4) * 6
|
||||
((9 * 3 + 3 * 5 * 9) * 3 * 2 * 5 * 4 + 9) + 2 * 5 + 5 * 8 * 6
|
||||
7 * 9 + 4 * ((3 + 7 + 2) + (8 + 7 + 9 * 8 * 6 * 2))
|
||||
(5 * (3 + 5) * 3 * (3 + 6 + 3 + 4) + 8 + 9) + 9 + 6 * 4
|
||||
3 + 9 * (3 + (4 + 7) + 2 + 3 + 7) * 8 * 6
|
||||
(5 * 7 + 4 + 7 + (5 + 4 * 4 * 6 + 6)) + (9 + 3 + 2 + 2) + ((3 + 2 + 9 + 7 * 2 * 3) + 8 * 2 * 2 + 9 * 3)
|
||||
3 + 7 + ((5 * 7) + 7 + 3 * (7 + 5 + 8) + (9 + 8 * 8) + 7)
|
||||
5 * ((5 + 8 * 3 * 7) + 2 * 7 * 5 + (4 + 8 + 3) + 3)
|
||||
(3 + 9 + 4) * ((3 * 6) + 5 * 7 * 6)
|
||||
8 * 7
|
||||
(5 * (2 + 9 + 4) + 8 * (8 + 7 * 7 + 5) + 6 * (2 + 4 * 7)) * 8 + 9
|
||||
(4 + (3 + 7 * 4 * 2 * 7 + 8)) * 9 * 6
|
||||
6 + 7 + 9 * (9 * 2 * 6) * 6 + 2
|
||||
7 * 5 + (5 * 3 + 9 * 6 + (9 * 5 * 2 * 3) + 7)
|
||||
3 * 5 + 7 + 2 + 3 * ((8 + 5 * 2 * 6 * 5) * (4 + 4 + 7 * 9 + 8 * 4) + (2 * 9 + 2 * 2 + 8))
|
||||
(9 + 7 * 9 * 2) + 8 * 6
|
||||
(9 * (7 + 8 + 9 + 5 + 5) * 2) * 3 + 5 + (7 * (6 * 8 + 9 * 4 * 4 + 8) + 6 + 6 * (9 + 8 + 4 + 6)) + 2
|
||||
(3 * 9) + 4 * 9
|
||||
4 + 7 * ((8 * 2 * 6 + 8 + 7 * 2) * 2)
|
||||
2 * (6 + 3) + 4 + 7 * 4
|
||||
(2 * 8 + 9) + (2 + 6) + (4 * 6)
|
||||
7 * 2 + 9 + 7 * 3 + ((5 * 5 * 3) + 3 * 8 * 6 + 2 + 7)
|
||||
((2 + 6) + (7 * 4 * 8 * 7 * 3) * (2 + 8 * 4) * 5 + 6 * 2) * (4 + 7 + 2 + 8 * (3 + 8) * 8) + (7 + 8 + 3 + 3) + 9 + 4
|
||||
(3 * 4 * (9 + 4 + 6 * 7) + 2 + 2 + 8) + 4 + 6
|
||||
(4 * (4 * 3 + 2 + 9) * 4) + 2 * 6 * 3 + 8 + 5
|
||||
(3 + 9 + 7) * 8 + 9 + (4 * (7 + 7 + 8 + 7) * 8 * 3 + 5)
|
||||
5 * 2 * (5 + 9 + 6 + (6 + 6) * 2 + 7)
|
||||
7 * 7 + (2 + 2 * 5 * 6 + 2) + 4
|
||||
8 * (2 + (9 * 2 + 2 + 7 + 7)) + 8 + 7 + 5 + 7
|
||||
(5 + (9 * 8 * 3) * (2 * 2 + 8 + 8 * 5) + 7 * 3 + (8 + 9 + 2 + 6 + 3 + 7)) * 9
|
||||
(4 + 8 + 9) + (6 + 3 * 4 * (4 + 2 + 4 * 2 + 8 + 2) + 8 * 3) + 5
|
||||
6 + 3 + 2 + (2 + 6 + 7 + 2 + (7 + 3 * 9 + 3 * 5))
|
||||
4 + 7 * 2 + 8 * 2
|
||||
7 * 6 + 4
|
||||
(2 * (5 * 3) * 9 * 3) * (3 + 7 + 6 * 5) * 4 * 9
|
||||
3 + 9 * 2 + (8 * 4 + 8 * (3 + 3 + 2 * 3) + (9 + 5 * 8 * 6))
|
||||
8 * (8 * 2 + 4 * 4 * 6) * 9 + 5 + 4
|
||||
2 + 8 + (4 * 7 + (2 * 9 * 2 + 4 * 5 + 7) * 9 * 8 * 3) * 5 + 7 * 3
|
||||
8 * 5 + 7 * 5 + (7 * (5 + 8) * 5 * (3 * 7 * 2 * 3 + 2)) + 5
|
||||
8 * (2 * (5 + 3 * 6)) + 2 * ((7 * 6 * 7 + 2 * 2) + 8) * 6
|
||||
((9 + 8 + 7 * 6 * 7 * 9) + (9 + 6 * 4 + 9 * 4 + 2) * (6 + 4 + 6 + 9 * 4)) * 7 * 8 * ((8 * 4 * 9 * 5 + 6 * 6) + 7 * 3 * 3 * (2 + 4 * 4))
|
||||
4 + (8 * 7 * (9 + 6 * 8 + 8) * 7 * 4) + 2 * ((4 * 4 + 7 * 9 * 8 + 3) + 7 + 3 * 9 * 3) + 6
|
||||
6 + ((5 * 2 + 9 + 9 + 7 * 7) * (2 + 9 + 6 * 8) + 9) * 3
|
||||
(6 + 6 + 9 * (8 * 5 * 3 + 3 + 2) * 8) * 5 + 8 * (3 + 6 + 8 * 9 + (5 + 3 + 7)) * 5
|
||||
8 * ((8 + 3 + 5) + 5 * 4 * 6) * ((7 * 3 * 2 * 7 + 8 + 8) * 7 + 9 * 5 + 2) * 8
|
||||
9 * ((6 + 3 + 3) + 4 * 3) + 6
|
||||
9 + ((9 * 8 + 3 + 5 + 6 + 3) * (7 * 5 * 6 + 5 + 6) * 5 + 8) * 4 + 8 + 6
|
||||
2 * 4 * 2 * (8 + (7 * 5) + 8 * 3) * 7
|
||||
8 + (6 * 8) * 9 * 2 + 3 * 7
|
||||
(4 * 3 * 2 + 8) * (8 + (5 * 2 * 7) + 5 + (6 + 8 * 4 * 9 + 5 + 5) * 4) * 2 * 3 * 2 + 5
|
||||
9 + 5 * 9 + (3 + 4) + (5 * 6 + 5)
|
||||
9 * 9 * ((9 * 9) * 5 * 6 + 4 + 3) + 8 + 8 + (4 + 4 * 4 * (3 * 7 + 7 + 9 + 5 * 3))
|
||||
9 + (3 * 2) + 2
|
||||
((3 + 7 + 5 * 8) + 3 * 5 + 2 + 2) * (5 + 7 + 5) * (2 * 3 + 8 + 8 * (9 * 3 + 6 + 7 * 7))
|
||||
((8 + 3 + 2) * 9) * 5 * 9 * 8 * 3 + 8
|
||||
2 + 8 + 4 + 2 * 2
|
||||
(8 * 9) + 9
|
||||
6 + (4 * 8)
|
||||
(5 + 9 * 7) * 9 + ((9 + 9) + 6 + 3 + 8) * (9 + 9 * (6 + 9))
|
||||
((6 * 6 + 8 * 6) + 2 * (6 * 6) * (3 * 9 + 7 + 9 * 8) + 3) * (8 * (2 + 7 + 9 * 8) * 2) + 4 + 7 * 6
|
||||
7 * (7 * 3 * 9 + 7) + (4 * 9 + (5 + 3 + 5) * 7) + (5 + 3 * 3 + 2) * 2
|
||||
(6 * (2 * 7 * 3)) + 5
|
||||
8 * ((7 * 4 * 4 * 3) * 3 * 5 + 6 + (2 * 5 + 5 + 2 * 8) * 9)
|
480
2020/inputs/day_19
Normal file
480
2020/inputs/day_19
Normal file
@@ -0,0 +1,480 @@
|
||||
66: 69 116 | 9 115
|
||||
91: 95 9 | 109 69
|
||||
14: 110 69 | 15 9
|
||||
4: 119 9 | 61 69
|
||||
17: 9 23 | 69 93
|
||||
37: 118 69 | 94 9
|
||||
68: 9 80 | 69 19
|
||||
117: 37 9 | 45 69
|
||||
132: 9 109
|
||||
74: 9 25 | 69 126
|
||||
102: 122 9 | 6 69
|
||||
98: 89 9 | 99 69
|
||||
113: 83 9 | 7 69
|
||||
92: 9 16 | 69 50
|
||||
33: 9 39 | 69 133
|
||||
134: 95 69 | 7 9
|
||||
57: 9 7 | 69 110
|
||||
31: 9 66 | 69 51
|
||||
47: 9 3 | 69 83
|
||||
21: 69 123 | 9 129
|
||||
104: 9 86 | 69 7
|
||||
40: 69 24 | 9 34
|
||||
32: 9 44 | 69 88
|
||||
45: 49 69 | 48 9
|
||||
2: 69 88 | 9 23
|
||||
5: 3 9 | 110 69
|
||||
108: 20 86
|
||||
76: 97 9 | 113 69
|
||||
56: 9 121 | 69 58
|
||||
29: 69 13 | 9 82
|
||||
123: 86 20
|
||||
46: 23 69 | 95 9
|
||||
19: 7 69 | 109 9
|
||||
12: 93 9 | 95 69
|
||||
75: 85 9 | 128 69
|
||||
127: 93 69 | 83 9
|
||||
61: 9 7 | 69 23
|
||||
78: 9 132 | 69 107
|
||||
121: 88 69 | 23 9
|
||||
60: 33 69 | 76 9
|
||||
73: 26 69 | 100 9
|
||||
116: 9 60 | 69 75
|
||||
93: 69 9
|
||||
38: 9 106 | 69 110
|
||||
107: 9 7 | 69 86
|
||||
82: 5 69 | 64 9
|
||||
58: 44 69 | 23 9
|
||||
34: 69 57 | 9 104
|
||||
124: 69 106 | 9 44
|
||||
109: 69 9 | 9 9
|
||||
48: 69 44 | 9 83
|
||||
28: 9 83 | 69 7
|
||||
64: 9 93 | 69 7
|
||||
54: 9 102 | 69 40
|
||||
94: 83 69 | 7 9
|
||||
80: 9 86 | 69 3
|
||||
62: 86 69 | 83 9
|
||||
42: 125 69 | 70 9
|
||||
71: 69 112 | 9 114
|
||||
8: 42
|
||||
131: 69 44 | 9 7
|
||||
88: 69 9 | 9 69
|
||||
87: 15 69 | 7 9
|
||||
3: 9 9 | 69 69
|
||||
9: "b"
|
||||
41: 21 69 | 78 9
|
||||
65: 9 69 | 69 20
|
||||
128: 134 69 | 101 9
|
||||
44: 9 69 | 69 69
|
||||
51: 9 18 | 69 54
|
||||
55: 69 79 | 9 5
|
||||
95: 69 69 | 69 9
|
||||
110: 9 69
|
||||
22: 92 69 | 10 9
|
||||
67: 9 44 | 69 23
|
||||
7: 9 20 | 69 69
|
||||
90: 69 96 | 9 68
|
||||
53: 111 9 | 27 69
|
||||
125: 69 72 | 9 22
|
||||
11: 42 31
|
||||
23: 9 69 | 9 9
|
||||
114: 69 105 | 9 131
|
||||
81: 53 69 | 29 9
|
||||
69: "a"
|
||||
1: 86 9 | 95 69
|
||||
18: 9 73 | 69 90
|
||||
83: 20 20
|
||||
130: 89 69 | 47 9
|
||||
89: 44 9 | 93 69
|
||||
15: 9 9
|
||||
0: 8 11
|
||||
105: 69 110
|
||||
13: 135 9 | 14 69
|
||||
6: 69 105 | 9 132
|
||||
103: 120 69 | 71 9
|
||||
85: 1 69 | 2 9
|
||||
96: 89 9 | 12 69
|
||||
101: 69 95 | 9 23
|
||||
39: 69 15 | 9 109
|
||||
133: 88 69 | 65 9
|
||||
86: 69 20 | 9 9
|
||||
122: 127 9 | 43 69
|
||||
20: 69 | 9
|
||||
52: 69 109 | 9 3
|
||||
119: 15 69 | 88 9
|
||||
77: 9 7 | 69 93
|
||||
50: 87 9 | 61 69
|
||||
129: 9 65 | 69 110
|
||||
97: 69 95 | 9 93
|
||||
111: 59 69 | 35 9
|
||||
115: 69 84 | 9 41
|
||||
84: 36 69 | 4 9
|
||||
72: 117 9 | 74 69
|
||||
135: 110 69
|
||||
112: 62 69 | 124 9
|
||||
43: 69 3 | 9 15
|
||||
118: 109 9 | 93 69
|
||||
49: 69 23 | 9 83
|
||||
26: 69 67
|
||||
63: 106 9 | 44 69
|
||||
70: 103 69 | 81 9
|
||||
25: 17 9 | 77 69
|
||||
36: 91 9 | 32 69
|
||||
10: 69 98 | 9 56
|
||||
30: 9 109 | 69 3
|
||||
126: 9 28 | 69 63
|
||||
16: 9 38 | 69 30
|
||||
99: 106 9 | 109 69
|
||||
59: 23 9 | 3 69
|
||||
120: 130 9 | 55 69
|
||||
27: 69 91 | 9 108
|
||||
24: 46 69 | 52 9
|
||||
35: 9 93 | 69 109
|
||||
100: 9 101 | 69 80
|
||||
106: 69 69
|
||||
79: 44 69 | 65 9
|
||||
|
||||
bbabbbaaaaaabbabbaabaaabbaababbbabbbabbbababbbbbbbbabbbbbbabaaaa
|
||||
aabbbabbabaaaababbbaaabb
|
||||
baababbbaababaaaabbaababbabbbaaabaaaabbbaaaabbaaabbaabba
|
||||
abbbbaaabbaaaababbbabaaabbbabbbbbabaabab
|
||||
aaabbbbbabbbbbabbabbaabbaaaaababababbbbaaaaabbbabbbbabbababbaaabaaaababa
|
||||
bbbabaaaabbaaabbbababababababaaaabaabbbabaaaabbbabbabbabbbaaabbaaabaaaaa
|
||||
bbaaaabbaabbbaabbabaaaba
|
||||
abaabbabbaaaaabbbbbabaabbabbbababaaababb
|
||||
baaaaabbbabbbbbbabababba
|
||||
baaabbbaabbaabababbbaaab
|
||||
baaaabaababbbbbababbbbaaabbabbaabbababababababbabbbabaab
|
||||
baabbaaaaaaaaaababbaaabaaabbabaaabbababaaaabaaaaabbaabaaababaabbbaabbbaaaabbabbbabbbbbbb
|
||||
ababbbaaabaabaababababbabbbaabbaaaabbbbbababbabaabbbbbaa
|
||||
abaabbaabbbbbbbaaaabbbbaaaababba
|
||||
ababaaabbaabbaaabbbaaaba
|
||||
bababbbbbaabbabbabbabaaaabaababababababababaabab
|
||||
bbaaaaababbbaababbbbbbaa
|
||||
abaabababababbbaababaaaa
|
||||
aabbababaaaababababbbbba
|
||||
aabaababbbaaababbabbabab
|
||||
baababababbbabbbbbbbbaba
|
||||
bbbbaaaabbababaabbbabbabababbbab
|
||||
baaabbbbbbabbbbbaaaabaaa
|
||||
ababbbbabbaabbaaaababbaaaababaaabbbbaaabababbabbaababbbb
|
||||
bbbbaababababbbbbabbaabbbabaaaba
|
||||
abbbabbababbbaaaababbbbb
|
||||
abbbbbabbabbabbbbaaabbabbaaaabbbbbaabaaabaabbaba
|
||||
aabbabbabbbbbbabbbabbaaa
|
||||
bbbbaaaabaababbbbabbbbab
|
||||
bbababaaabbaaabbabaaaabb
|
||||
bbbbbbbabaabababbbbababbbabbbaaaababaaaa
|
||||
abbbbbaabbabbbaabbbababbababbaabbaaabbab
|
||||
aaabaabbbbabababaaaabababababaabbbabbabb
|
||||
abbabbabbbaaaabbabaaaababbbaabbabaaabaaa
|
||||
babbbabbbbbabaaababaaabb
|
||||
bbaaaaabaabbaaaabbbabbbb
|
||||
abaaabbbbaababbaaabaaaab
|
||||
bababaababbaaabbaaaabaab
|
||||
bbaabaabbabaaaaabbbbbbbaaabaaabaaaabbbaabbaabbbabbaaaabaaabbabbbbbaaaaaabaabaaaaabbaaaba
|
||||
abbabababbbbababbbaabaab
|
||||
ababababaabbaabbbbabbaaa
|
||||
bbbbbaabbbbabaaabaaaabba
|
||||
aababaaabababbbabbababababaabbbaabbaaabababbaabbbaabbbaa
|
||||
aabbaabaabbbbabbaabababb
|
||||
aabaaaaaabbbbbbbabababbbbabaaaabbbaabbba
|
||||
bbaaaaabaaabaabbaabaaaab
|
||||
aaaaaaaaabbaaaaabbbbaaababaaabab
|
||||
baababbaaaaaababbbbaaabb
|
||||
abbbbaabaabbaabbbaaabbaaabbbbabbabbbaaaabaaaaaaaaabaabba
|
||||
baabaabaaabbbabbbbaaaabaabaaaaabaaabaabbbabaabbb
|
||||
abaaaaabbabbbabbbababbaaaabaaabbaabbababbabbbabababaabaabaabbbaa
|
||||
aaaaaaabababbbbaaabaaabaababababababbabb
|
||||
abbbabaabbabaababaaaabaa
|
||||
abbbbbaabababbbbbabaaaba
|
||||
aabbaabbbaabaaaabbaaabba
|
||||
bbabababaaaaabaabbbbaabaaaaababb
|
||||
aabbaabbbbbbbaabaaabaaba
|
||||
bbbbbaabbabbbbbbabbbaaab
|
||||
bbababbaabbbbabbbaabbbab
|
||||
baaabbbbbababbaaaaabbbab
|
||||
bbaabbbbbbbbbababaaaabbbbaaaababbbaababa
|
||||
aabaabababbbbaabaaaaabba
|
||||
abaabbbbaabbbaaabbbabbba
|
||||
baabaaaaabbbaabaaabababb
|
||||
baaabababbbababbaaaaaabb
|
||||
babaababbaaaababbaabbaaaaaaabababbbbbbaabbaaabbbaaaabbabaaaaaabbaabbaaaaaabbbaaaaaabaaba
|
||||
aaabaabbaaaababaaaaaaaabaabbbbbb
|
||||
abbbababababbbbabaaaabab
|
||||
abaabaabbbabababaaabbaaa
|
||||
bbbbababaabaaaaaaabbbabbaababaabababaaabbbbabbab
|
||||
bbbbaaabaabbbabbabbbabbabaababbbbababaaa
|
||||
bbaabbbbaaabbabbaaababaaaabaaababbaabbba
|
||||
aabaabbabbabbbaaaaaaabbb
|
||||
aabbabaababbbabbaabbbbab
|
||||
baababbbbbbbbbabbabbaaaababaabab
|
||||
babbaababbaabbaaaaaaaaba
|
||||
aaabbbbabbaaaabbaaabbaaa
|
||||
aaaabbbbbaaababaababbbbabababbababaabbab
|
||||
baaaaabbbaaabaababbaaabbabaabbaabbbbaaaababbaaaa
|
||||
babbabaabbbbaaaababbbbaabbbbabbb
|
||||
abbbbabaaabababababaabab
|
||||
bbaaaaabababaababababbab
|
||||
ababbaabaabbaaaabaabbaba
|
||||
bbaabbaaabaababaaaabababbbbbaaba
|
||||
babbbbaaaabbabbaaabbbbbb
|
||||
baaabbaabababbaaabababaa
|
||||
aaaabbbabaabababbabbaababbbbabbaaaabaabbaaaabababbbaabbb
|
||||
bbbbbbabbaaabbaaabbbbaabbbabaababbbbbaaabbabaaabbabbbbba
|
||||
baabaabaaabaabbaaabbababbabbabaabbabbaabbaaabaab
|
||||
babaaaaaabbbbaabbbbbbaba
|
||||
bbbaababaabbbabbaaababba
|
||||
bababbbbbaaabbbbabbbabbaababbaababbbaaabbbbaaaba
|
||||
abbbababbbbbaaabbabbaaab
|
||||
bababaababaabbbabaaabbbbbaabababbbbaabaa
|
||||
bbbaabbbaabbbbbaabaaabaaaaabbbbbaababbbbbbababbabbabababaaaababaaaabaabb
|
||||
baaaaabbabaabaaaabbbbaaaaababababbbbabbb
|
||||
bbbbaabbbbaaabbbbaabbbaabaaababbbbaababb
|
||||
abaaaabaaabbababbbaabbba
|
||||
bbabaabbbbaabbaaababbaabaaababaa
|
||||
aababbbaabaabbbaaababbaabaaabaaaaabbbbba
|
||||
babbaabbbbbbaabaaabbabbaaabbabaabbaabbab
|
||||
aababaabbbbababbaabbbaababbabbabbaaaabaaabbaabaabbbaaabb
|
||||
abaabbbbabaabbaababaaaba
|
||||
aabbbaabbaaabababbaaabba
|
||||
baabaaaaaaaabababaaaabab
|
||||
bbaaaabbbaaabbbaabababba
|
||||
bbaaaaabaabaaabbaaaaabbb
|
||||
baaababaabbaaaaababbbbbbabbbbbaabbbbbbabababbbaa
|
||||
abbbbabaababaabaaaaabaab
|
||||
baaababaabbbabbbbaabbaab
|
||||
abaabbaabababaababbaaaaaababaabb
|
||||
abaababaaabbabbaabaaabba
|
||||
bbaababbaabaaabbbababaabbbbabbab
|
||||
babbaaaaabbabbbaabababbb
|
||||
aabbaaabbabbbbaaaabbbbba
|
||||
bababaaababaaababbbabbba
|
||||
bababbbaabbaabababbbabbbbbababababbbbbaabaaababb
|
||||
abbabbbababbbbaaaabbaabbaabbaaaaabbabbaa
|
||||
aaaabababbabbbaaaabaabaaabbabbabbbbbaaaabbaaaababaabbabbbbbbbbbababbabaaaabbbaab
|
||||
bbbaaaaabbaabbbaaabaabbaabaaababbabbbbbabbbabaab
|
||||
bbaaaababbbaababbabbbaab
|
||||
aabaaabaaaabaabbbbabbaaababbababbabaababbbbaabba
|
||||
aaaabababaababbaaabaaabaababaababbaaabbbbabbbaab
|
||||
bbaabbaaaaaaabababbabbbabaaaabbb
|
||||
ababbababbabaababbbabbbb
|
||||
bbbbbbabbbaabbbbbbbabbbbbbbbbbaaaabbbbabaaabaaba
|
||||
aabaaababbaabbaababbaabaabbaabbaababbbbb
|
||||
bbaaaaabbbbaabbabbabbabaabaaaaaababaabab
|
||||
aababaaabbbbaabbbbababbabbabaaaabaaaababbaaaababbabbbaabbaaabaab
|
||||
aabbaaaaabbbaaaaabbaaaaabbbabaab
|
||||
aababbbabbbaababaabababaababbbaaabaaabab
|
||||
bbbaaaababaaabaaaaaabbabaababbbaabababaaaaaabaabaaababab
|
||||
abaaaabbabababbaababbbab
|
||||
bbabaabbaababababaabbbbb
|
||||
babbabaabbabbbbbaaabaabbbabbaaaabaaabbba
|
||||
aaaaabaababbabaaabbabbbb
|
||||
bbaaaabbaabaaabbbaabbaba
|
||||
abaaababaaabbbbbbbabbababbaaabaa
|
||||
bbbbaababbbabaaababbabab
|
||||
ababababaababaaabababbbbaaabbaababbbbabababaabba
|
||||
babbaabaabaabbbbbaabaaaaaaabaabbbaabbabb
|
||||
aaabaaaaababbaabaabbabaaabaabbabbbbbbaaabaaabaaa
|
||||
baaabbaabaabaabbbaabbbab
|
||||
aaaabbbaabaabbbbabbbbbaabbbbbbbbababbbaa
|
||||
bbabbbaabababaababbaabaa
|
||||
bbabaabaabbababaabaaaaabaaaaaaaabbbaabba
|
||||
bbaababbbaabbaaabaaaaaba
|
||||
baabbabbabbababbbbbbbbaabbbaaaaabaaaabbb
|
||||
babaaabaaababbabbabaaaaaaaabbaaaaabbabbabaaabbbabbaabbab
|
||||
babbabaaabaaaabaabbbababbaaaabba
|
||||
abbababaaabaabbaabbbaaaabbaabaababbbbbabaabbbaaaaaababbaabbbbbbb
|
||||
abbabbbaabaabaaaaababaabaaaabbbbabbaaaaababababbbbabbaabaabbababaaaabaabaaabababbbabbaab
|
||||
bbaababbaaaaabaaaabbbaababbbbbab
|
||||
babbbabbaaabaaababaabbbabbbaaaba
|
||||
aaabaaabbaababbaabbbbbaaaabbbaba
|
||||
bbaaabababaaaabaababaabaaabbbabbbbbbaabbbbaabbaababbbbabbbabbabbbababbab
|
||||
abbbabbabbbbaaababbbbaabbaaaaaab
|
||||
babbbabbaabbaabaaabbaaabbbbbaaabbaababbbaaaaaabb
|
||||
aabbaabaabaabbabbbbbbbbabbbaabbb
|
||||
abaaaaabbbbbaababaaaabab
|
||||
abbbbbbaaabaaaaabbabaaaa
|
||||
bbbbbbbaaabababaaaabaaba
|
||||
bababbaababaaaaababaaaba
|
||||
abbbaababaababbbbbbbabbabbbaabaa
|
||||
abbbbbaabbbababababbbbbbbaaaabaabbbaaaba
|
||||
abaaaabaabaaabbbbaababaa
|
||||
bbaabaaaaaaaababaabbaabbabbbbbbabaabbbbabbababba
|
||||
baabbaabaaaaabaabaabaabbbbabbbab
|
||||
bbaaabbaaabbabbaaaaaaabbbbbaabbabbaaaaaabaabbbaa
|
||||
aaaaaaabbbbbbbabbbababaabbababbb
|
||||
abbbabbbbabbbaaaabababbb
|
||||
aaabaaabaaaabbabaaaabbbb
|
||||
babbaaaabbbbbbabbabbabba
|
||||
ababababaabbabaabbabbbbbbaabbbaa
|
||||
aabbbaabaaaaaaabaaababbb
|
||||
aaaaabaaaaabbbbaaaaabbababaabbababaabababaaaabaa
|
||||
abbbbaabbbabaabbababaaabaaabaaabbaaaabbabbaaabba
|
||||
aaabbbbabbbbaabaababababbababbbabaabaabbbbbaabbb
|
||||
abbbababbaababbababaabaa
|
||||
ababaaababbbbaabbbabbabb
|
||||
babbbbbbbaababbbbbbabaaaabababbbbaabbabb
|
||||
aabaaabbaabbaaaabaaaabab
|
||||
abbbabbbbababbbbbbabababababaabbaabbbbba
|
||||
bbbabaaaaababaabaaaabbaa
|
||||
bbbbaaabbabbaababbbaabba
|
||||
ababababbaaababababaaaaaaaabababbaaabbbbbbaaabaaaaababbabaaaabba
|
||||
bababbbbbbaaababaababaabaabbababbbbbbbba
|
||||
baababbaaabaabababbaabba
|
||||
bbbaababbbbbbbbabbaabbab
|
||||
babbbbaababbbbbbbaabbbba
|
||||
aaabaabbabbbbaabbbaababa
|
||||
abbbaaaaaaaaabaabbabbaab
|
||||
aabababbababaabaabbbbbbbaabbaababbaaaaaaaaabbbbaaaaabbaa
|
||||
bababbbbaaababababbabababbbbbbbaababaaaaaaabbaaa
|
||||
bbbbaaababbabbababababaa
|
||||
bbbbbaabaaaababbaabbbbba
|
||||
baabbaaabbbbabbbbbabaabaaabaabbbaabbbbbb
|
||||
bababbaababbbbbbbaaaaabbbbaaabab
|
||||
aabbaaabbbbbbbabaababbabbbaaabaa
|
||||
bbbbaaabbaababbaaababbab
|
||||
ababbaabaabbababbaaaabaa
|
||||
baabaabbabbbabbbbaaaabbb
|
||||
abbabbbabbbaababbbbaabba
|
||||
abaaabbaaaabbabbababaabbbaaaababbaaabbbbaaabaabb
|
||||
baabaabbbaaaaabbbabbaaaaaabbabbbbbbaabbb
|
||||
abbaabababaabababbaababbabbaabaa
|
||||
bbaaaaaabbaaaabaaabbababababbbab
|
||||
aabbaaabbababbaabbbbabbbbaababababbaabba
|
||||
bbbbaabbaababaababbbbaabbbabbbbaababbbaaabbbbbbbbbababbb
|
||||
aaaaababaaaababaabbbababaabababaabbaaabbbabbbbab
|
||||
aaabbbbabbabaabbbbaaabaa
|
||||
bbabababbabaaabbbbbaaaba
|
||||
aabbabbabbbabababaaabaab
|
||||
bbbbaabbabbbabbbaabbbbbabaabababaaabbbab
|
||||
baaabbbbaabbbabbbbaaaaaaabbbaabbaababbbb
|
||||
bbaaabababbbaabaabbbaababababbabbbbabbab
|
||||
bbbaaaababbaaababbbabbabbbbbbaaaababaabb
|
||||
abaababbbabbbbabaababbabbaaaaabbbaababaaabbaabaabbababaaabaababb
|
||||
ababbaabaabaabbaabbabaaa
|
||||
bababbaababbaababaabbaabaabaaaaabaabaabaaababbabbbabaaaa
|
||||
babaaaaaaabbbabbaaabbbaa
|
||||
abbbbaabbbbbaababbbaababaaaaaaababababbb
|
||||
bbabababbababbbbbbbbbaaa
|
||||
aabbbaabbababbaaaabaaababbabbabb
|
||||
baababbbabbbbbbabbbbbbbaaaabababbaaabbab
|
||||
bababbbbabaabbaaabbbbaaabaaaabbb
|
||||
abbaabaaabababbbaaaaaaaaaabbaabbbaabaabb
|
||||
bbabbbbbbbabbbbabbbbaabbabaaaabbbaabbaba
|
||||
bbaabbaabbababaabbaaababbabaaabb
|
||||
bbaaaabbbaabaababbbbabbaababaabb
|
||||
aaaaaaababaabbbabbbbabaa
|
||||
bbbbaabaabababbabbaabaaabbababbaababbbbbaaaabbaabbbabbbabbaababb
|
||||
abaaabbbbbbbababbbaababa
|
||||
abaaaababbbbabbaabababba
|
||||
aababbbabbbbaabbbababbbbabaaaaababbbaabbbababbab
|
||||
bbbbaaaaabaabaabbbbbababbaaaaaba
|
||||
babbaaaabaabbaabaaaaabba
|
||||
bbbbaaaabaababbabbbaabba
|
||||
ababababbbaaaaaaabbabaab
|
||||
bababbbabbbaababaabbabaaabbabbbabbabbbab
|
||||
baabaaabbabbbbbbbbbbbaabaabababa
|
||||
ababbbbaabaaaabababbbbba
|
||||
aaaaababbbabbbaababaaaba
|
||||
baabababbaaaaabbbbababbb
|
||||
bbbbabbabaabaaaababbbbba
|
||||
aababaaabbabbbabbbbbbabbbbbaabbbbaabbabb
|
||||
bbabaabaabbabababbbabaaaabaabaaababaaaba
|
||||
aabbbbaaabbbbabbbabbabab
|
||||
abaababaababbbbbbababbab
|
||||
bbbabaaaabbbbabaaaabbabb
|
||||
aabbaabbabbabbabbabbabba
|
||||
bbababababaabbbbbabaaaab
|
||||
bbbbaaaaaabaaabbbaabbbbb
|
||||
aaaababbbaababababbabbaa
|
||||
abaabbaaaabaaabababbbbba
|
||||
aababbaabbaaababbbbbbbbababbaabb
|
||||
babbbababbbbbaabbaabbbabbaaaababbbaabbabbbbaaabbaabbbabbbaababaa
|
||||
bbaaaaabbaabaabaabbaaabbababaababaabaabbabbabbaabbaaabbababbbbab
|
||||
abbabbbabaabaabbabbbaaab
|
||||
babbababbaabbabaabaaabbabbababbbaaababbb
|
||||
baababbbbbababaaababaaaabbabbaaa
|
||||
bbbabaaaaaabbbaaaaaabbabbabababbabbbbaaaaaababab
|
||||
ababaaabbaaabbbbababaaabbbbbaaaababbaabaabbbbabbbbabbaaa
|
||||
abaaaaababbaaaaabbabbbaabaaaabaababaaaba
|
||||
abaabababaabbaabbbbaaaab
|
||||
babbbbbbbaaabbaaabbbbababbaaabbbabababaabbbaaaba
|
||||
baabaaabaaaaaaabbbabaabbbbabbaba
|
||||
aababbaaabbbaaaaabababba
|
||||
abbbbabaabaabbaaaaaaaaababbbaaaabbabbaaababaaaab
|
||||
bbaaaabbaababaabaabaaabaabbabbbb
|
||||
bababaabbabbbaaabbaabaaa
|
||||
bbbaabababbbbaabbabbabaabbaabaaa
|
||||
babaaaaaabaaabbbbbababbb
|
||||
abbbbbaabaabaabababbabba
|
||||
baababbaaabbababababbbaa
|
||||
aaabbbbaaaabababbabaabba
|
||||
abaabbbabbbaabababaaabab
|
||||
babbbaaaaabaaabababbbaba
|
||||
abaabaabbabbaabaabaababb
|
||||
aaaaaaabbabbaabaaaabbbab
|
||||
bbabbbaabaabaababbaaaaab
|
||||
bbaaaabbbbbbbbabababaabb
|
||||
bbaababbbaaabbbabbaabbab
|
||||
aaababababbabbabbabbabab
|
||||
aabbaaaababaaaaaabbbabbaabaabbbaababaaaa
|
||||
aabaaaaaabbaabababaaabab
|
||||
baabaaabbbbababaababbbbb
|
||||
ababababbbbbaababbaabaaa
|
||||
bbbababaaababbbaabaaabab
|
||||
bbbababbbbababababababbb
|
||||
baababbbbbbbbbabaabbbbaabbbbbaaa
|
||||
ababbbbaaabbaabbbbaabbbb
|
||||
baababbababababbbbbbbbbaabbbbaabbbaaaaabbbaabbab
|
||||
abaabbbabaababbaabbaabaa
|
||||
aabbabbabbbbaaaaabaababb
|
||||
baababbaabbaababaabaaaaabbbabbba
|
||||
aabaaaaabbbbababbbbbaaaabbbabaabaababbab
|
||||
aaaaaaaaabbaaabababbbbab
|
||||
baaabbbbabbbaaaaababbbab
|
||||
abaababaaababaaabababbaaabbbababbbabbbaaaaababbaaaaaabbaaaabbbbb
|
||||
aabbbaaaabaabaaabbbbbbababbbbaaabbbabbaa
|
||||
babbaaaaaabbbaaaabbbbbaaaabbabbabbbaabaa
|
||||
bbbababbbabbbbaaaabaabaa
|
||||
babbbabbabbbbbaaabbabbbb
|
||||
aababaaabbaaaaababaaaaaabbbbbbababababbbbaaaabbabaababaababbabbaabbbbaaababababa
|
||||
bbbabaaabaababbaaabaaaab
|
||||
baabaababbabbbbbbaabbbbb
|
||||
bbbbbbabaaababbbabbabbaabaabbbba
|
||||
bababbabbaabbaaabaababbbabbbaababbabbaaaaababbabbbbbaaabbabbaaaaabaabbba
|
||||
abbaaabbabbababaabaaabaa
|
||||
bbaaababaabbabaaabaaabaa
|
||||
bbabbbaaaaaaaaaaaaaabaab
|
||||
bbaaaaabbbababbabbbaaabb
|
||||
aaaaaaabababbabababaaaab
|
||||
abbabbabbabbbbaabbabbabb
|
||||
aabaaaaaabbbaaaaaabbabababaaabbbbbabaaabbabaabaabaaaabaa
|
||||
bbbbbaabbbaaaaaababbbbbbaaaabbababbaabbbabbbbbabbaaaabab
|
||||
aaabaaaaabbbabaabbaaaaba
|
||||
aababaabaabbaaaabaaaaaaa
|
||||
aaaabbbaaaabababaabbbaababbabaaabaaaaaaa
|
||||
baabbaabbaabaabbbababbbbbbbabbaa
|
||||
bbbaababbbbbaaaaaaaabaab
|
||||
bababaabbabbabaabbabbaaa
|
||||
baabbaaababaaaaabbaaaaaabbbabbbaaabbbaaabbbabaaaaababbbbbbbaaaab
|
||||
abbaababbaababababaabbaaababbaababbaabbbaaaaaabb
|
||||
babbabaaaaababbaabbaabaabbbbabba
|
||||
babbaabbbabbaabbaaaabaab
|
||||
aababbaaaaabaaabaabbbaabaabbabbaabbbbbbabbaabbbbbababaaa
|
||||
aaaabbbababaaaaaaabaabbb
|
||||
bbaababbabbbaaaaababaaabbbabbbbaaabbbbaababbababbbabbabb
|
||||
aababbbaaaabaaaaabaababb
|
||||
baaababbabbbbbbbbabaaabbabaabaabbbabbaba
|
||||
abbabbabaaaaaabbaaabbabbbbbabaababbababbbbbaabba
|
||||
abbbbabaaabbababbbbaaaba
|
||||
abbbaababbabbabbbaabbabbbbabaaaa
|
||||
abbbbaabaabbbabbaaaabbaa
|
||||
aaabbbbaaaaabbababbaaabbaaaaabbb
|
||||
bbbbaaabaaabaaabbaabbbaa
|
||||
babbbabbbabbabaaabbabbbb
|
||||
ababbbbaabbbabbbaaabbaaa
|
||||
bbabbbbbababbaabaaaabbbb
|
||||
bbbababbbbbbbbbabbbabbbb
|
||||
abbbabbbbababbbbabbabbbb
|
1728
2020/inputs/day_20
Normal file
1728
2020/inputs/day_20
Normal file
File diff suppressed because it is too large
Load Diff
38
2020/inputs/day_21
Normal file
38
2020/inputs/day_21
Normal file
@@ -0,0 +1,38 @@
|
||||
jnlgn xqth jtjtrd vhdt rlsr jjhfbn vvrhc hbrplx fntg dtkr fnlqrk vvbqtz prkblp ffj zkkz vmb xlvrggj qjg sfghbs srjv vphhllt fvjkp qszsz zhszc rzbncvnc mfbfsz xdjk plxs xgc gfzmpxq rmpfkv tglj rsmstv lfckh rkllz qczmsk xpbxbv zdpxfl zfsbvl mmdcl nzqx gzsdm mqv cmffmd gjlql htmb fqrm prtvmb smbdlcg zgzt zcvs qcksk trpbj jbslsbv lhtpf jgjrj tqlbk (contains shellfish)
|
||||
zhszc mgrr zgdt txldvd tvz xlvrggj zvrm brvz rzbncvnc kzklp zcxq krpcn rxv xqth ztpmz trpbj hnngrhk dqspdq qmqbz qpndpm dfsnq sfghbs jgjrj gjlql dktlp prtvmb zxnjkf fvjkp prkblp jjhfbn crjpt rsmstv qthxnb tcflf lfckh fsmqv rnjlpq vvnmqt scnc mqv khmzbj xkmz hbrplx lxpqkn gzsdm nxvzp fktgv rkkgm hlhc xpbxbv kzrk pffccf ndkmq bxc vmb czzx vdjtl rkkpgs zgzt mmdcl sdggf jszqhpf jtjtrd zhbtz fntg pdst qltvp rbjdgh zdpxfl nnrctqh hprqd tcfgv vphhllt jrpm mnn tglj vvrhc mqscmlf qnc gtqfrp dtkr srjv vhr htmb ffj xrvgdh qszsz cqkprv trjqbr cqs (contains soy, wheat, fish)
|
||||
xbzns trjqbr prkblp mbdbf gfzmpxq gtqfrp fntg frnmdqx rlsr zgzt qvjk cmffmd srfm qltvp brkds lkzfc qthxnb plxs tsjtr dkshp qrbbf rmpfkv sxpbg qczmsk xlvrggj nzqx rnjlpq zkkz mvmhqbpz tcflf vvrhc tvdntm qplx btttz gjlql zsd vvz sgn rkkgm vmb zhszc pdst qcksk tkv tcfgv rkkpgs vhdt smbdlcg lxpqkn pffccf krnfm lfckh khmzbj htmb tvz crbd fqrm fnpkmh fsmqv txldvd qktcqv hbrplx hzxx xqth xpbxbv jtjtrd fvt (contains peanuts, sesame, eggs)
|
||||
nchjqv frnmdqx nxvzp tdszhqn jnlgn nzqx fnpkmh jszqhpf dlzb qltvp dtkr mbdbf jmvv zhbtz vhdt ltbqt ftrnplt rtjbpd vvbqtz fsmqv vmq brkds xpbxbv nltv cghkbp vrgdk fvjkp qrbbf krnfm xgc hbjmtc tcflf tftpnc zvrm flxplq qpndpm tbnlrpb qpkbc fntg zhszc vphhllt qmcdlz lnvrg srjv jtjtrd crjpt rnjlpq zbnv fnlqrk zljsv zsd xqth prpbcv vvz pffccf rkkgm gjlql khmzbj lhtpf mgrr mfbfsz kzklp zxnjkf btttz gtqfrp hxcc rlsr mbx nhldb rzbrrr vhmpqd zcxq zkkz lkzfc tkv tfn qvks zkxxnhn mvmhqbpz lzxpn dqspdq nnrctqh lxpqkn htmb crbd tvz jrpm srfm txldvd qczmsk (contains eggs, sesame)
|
||||
krnfm jrpm xbzns lnvrg rzbncvnc vhr mqscmlf xqth ffj zgzt xkmz nchjqv vmq jtjtrd xzd qmcdlz mqv smbdlcg qvjk khmzbj xgc dkshp prpbcv zptr vhdt nnrctqh tqlbk zcxq mnn vhmpqd qplx crjpt zhszc jjhfbn ltbqt dktlp tftpnc hxq vphhllt gtqfrp rlsr zdpxfl flxplq plxs sgmsn cqs fqrm mmdcl qlrxfv jmvv nltv frnmdqx cghkbp jszqhpf sxpbg vdjtl tkrflnf qjg fvjkp jnlgn kzklp lfckh mgrr fntg xpbxbv hlhc tvz tdszhqn tfn srfm ztpmz sfghbs zgdt rxv trpbj qczmsk (contains shellfish)
|
||||
htmb srfm qcksk ftssfh czzx fntg rbbnskn rnjlpq rxv rsmstv vrgdk gtqfrp rd flxplq hbrplx vmq xdjk vvrhc nhldb ztpmz jmvv tftpnc mfbfsz szsrnsc hprqd zptr mvmhqbpz mnn qjg srjv jtjtrd tqlbk vdjtl nltv mqscmlf rkkpgs prtvmb fvjkp hnngrhk ftrnplt lxpqkn tvdntm ffj xlvrggj bmpnrhb jrlzcv zhszc xgc vpvm zhbtz vvz mbdbf lzxpn zdpxfl qktcqv qvjk rlsr khmzbj (contains soy, fish)
|
||||
rmzbr jtjtrd fvghn jjhfbn tsjtr mfbfsz tglj qthxnb cqkprv trjqbr zqnn tkrflnf lnvrg kssgts vvbqtz rzbrrr ndkmq zfsbvl qrbbf vvz dfsnq gpvcz dqspdq vhdt gzsdm phkxp rlsr prtvmb jnlgn rkllz ltbqt zljsv nchjqv fvt znhjn fsmqv cghkbp sgn nzqx fvjkp tbnlrpb fntg pffccf bxc zhszc gtqfrp cqs nxvzp mqv xpbxbv jgjrj zgdt srjv tftpnc lsnnzp lxpqkn xzd tkv qmcdlz (contains soy)
|
||||
nhldb tlbtr fvghn lfckh tftpnc rlsr hxq zptr htmb lzxpn smbdlcg qplx zdpxfl hnngrhk dkshp qszsz qlrxfv plxs nxvzp xqth rd qmqbz tzc sxpbg mmdcl jnlgn nzqx rbjdgh vmb vvrhc scnc rzbncvnc prpbcv jrpm zxnjkf vhr nltv fktgv xzd fntg crbd vhmpqd pdst nnrctqh zhszc rnjlpq tsjtr krpcn rzbrrr zgzt xpbxbv jtjtrd gjlql fnpkmh cghkbp cmffmd trjqbr mqscmlf gtqfrp khmzbj dfsnq hzxx rbbnskn srjv xrvgdh fvjkp qmcdlz hbrplx xgc cqs mvmhqbpz szsrnsc hprqd qktcqv znhjn mfbfsz (contains sesame, eggs)
|
||||
nzqx fktgv vmb jszqhpf ffj fvjkp qcksk xqszlhq qvks zcvs pdst rmpfkv nchjqv dtkr qplx tfn crbd zdpxfl sxpbg xpbxbv bmpnrhb zgdt zkkz rtjbpd qrbbf tvdntm xkmz zbnv sfghbs vphhllt dktlp nnrctqh pffccf xrvgdh qszsz qmcdlz gjmbv vhr qvjk rkllz rlsr xzd tzc rkkgm txldvd cqs fntg xdjk hbrplx jnlgn hxcc mgrr lfckh qnc ftrnplt vvrhc frnmdqx xgc jbslsbv gfzmpxq rzbrrr gtqfrp rbjdgh jtjtrd tdszhqn rd lzxpn srjv rsmstv ndkmq rbbnskn tsjtr fnlqrk srfm fvt vvnmqt cvnmx scnc lxpqkn tcfgv zptr zhszc vvbqtz mmdcl hnngrhk mqv prkblp brkds sgn (contains wheat, soy, peanuts)
|
||||
qltvp mfbfsz rtjbpd fntg jtjtrd fvt rmzbr rzbrrr rd xqszlhq xrvgdh fvghn frnmdqx zdpxfl mbdbf rnjlpq mnn jgjrj rkllz rlsr cvnmx gzsdm lkzfc mqv nxvzp rmpfkv pffccf gpvcz zptr zkxxnhn qnc sgmsn qvjk dlzb fnpkmh txldvd trjqbr qlrxfv vhdt lfckh mvmhqbpz ftssfh krnfm hxq mbx jjhfbn fvjkp hbrplx bxc khmzbj lzxpn tqlbk lxpqkn vrgdk cqkprv zhszc jrpm trpbj hxcc prkblp mqscmlf xqth tcflf brkds tvdntm fnlqrk vvrhc vvnmqt xlvrggj qpndpm kssgts dfsnq zqnn pdst tbnlrpb qplx zhbtz mmdcl xpbxbv qpkbc (contains soy, sesame)
|
||||
lnvrg ftssfh tbnlrpb zhszc xbzns hxq cmffmd cghkbp jmvv zgdt ftrnplt nxvzp xlvrggj vphhllt tglj vhr trjqbr flxplq kstd tlbtr qrbbf gtqfrp rbjdgh xpbxbv jbslsbv lxpqkn zsd fktgv vvrhc mnn brkds vrgdk nchjqv xqszlhq ndkmq hprqd czzx hlhc xgc dkshp jgjrj xqth cvnmx hbjmtc zgzt rtjbpd nhldb ltbqt zcvs qpkbc fntg xzd gzsdm fvjkp zfsbvl lzxpn fqrm plxs bmpnrhb zljsv tvz vpvm pffccf jtjtrd qlrxfv (contains sesame, fish, shellfish)
|
||||
zcvs qnc zfsbvl xkmz bvdqd tzc fvjkp zxnjkf phkxp rnjlpq znhjn jgjrj vhr krnfm qcksk szsrnsc zhszc tvdntm gzsdm fntg jtjtrd vrgdk vvnmqt jrpm fnpkmh xbzns kzklp rlsr tdszhqn kssgts hbjmtc rmpfkv rkllz xdjk kzrk qczmsk nnrctqh ftrnplt tcfgv qltvp trjqbr rkkgm tcflf gjlql hbrplx srfm sgmsn qrbbf tlbtr tftpnc fvghn hprqd tqlbk gtqfrp hnngrhk fktgv ndkmq prkblp lnvrg mbx xgc gjmbv flxplq cghkbp rmzbr ftssfh nchjqv nxvzp xqth qktcqv jszqhpf jbslsbv dtkr qpndpm bmpnrhb tglj xpbxbv plxs (contains wheat, sesame)
|
||||
fvghn mvmhqbpz jjhfbn zgzt krnfm xqszlhq qvks fntg kssgts jmvv dtkr xdjk nchjqv vvrhc bmpnrhb qczmsk zcxq lhtpf prkblp tbnlrpb rlsr xlvrggj xpbxbv htmb qmqbz fvjkp phkxp prpbcv mmdcl kstd zgdt hbrplx krpcn ltbqt jtjtrd jbslsbv rxjsq lxpqkn sfghbs mfbfsz xkmz tcfgv hbjmtc mbx vvz nnrctqh tkrflnf dlzb vhdt rsmstv rmpfkv brvz vmq zptr gtqfrp rnjlpq zqnn prtvmb rbbnskn qpndpm qvjk ftssfh zhbtz rbjdgh kzklp ztpmz nxvzp hzxx (contains peanuts, eggs, dairy)
|
||||
xlvrggj nhldb rxjsq ltbqt fntg xgc zqnn vmb zvrm mqv jtjtrd vvz qjg mbx rkllz hxcc ftrnplt zsd jjhfbn jmvv scnc crjpt zcvs zhszc vphhllt tfn htmb mqscmlf rlsr qcksk lhtpf dtkr zkxxnhn zgdt qrbbf sgmsn srfm rd lxpqkn xqszlhq vhr gtqfrp brvz tcflf fvjkp bmpnrhb tqlbk gzsdm tcfgv qczmsk mgrr qktcqv fvghn hxq qvjk (contains fish, eggs, peanuts)
|
||||
tftpnc qktcqv dlzb vhmpqd qpndpm xlvrggj bmpnrhb vrgdk hbrplx kssgts kzklp zgzt mvmhqbpz krpcn vvnmqt gjlql gfzmpxq jtjtrd zhszc xpbxbv xbzns mbx vmq crbd vpvm krnfm qmqbz txldvd bxc qrbbf kstd fvt tqlbk tdszhqn rzbrrr sgn zqnn prpbcv fvjkp rkkpgs qjg kzrk qczmsk jgjrj rd rlsr fntg lhtpf tsjtr qnc qmcdlz ftrnplt szsrnsc xgc sfghbs xkmz fnpkmh zcvs rnjlpq prtvmb xqszlhq dtkr rkkgm srjv rtjbpd mqv qplx jszqhpf tzc zxnjkf gpvcz brvz ztpmz ltbqt cvnmx tbnlrpb (contains fish)
|
||||
plxs fvjkp hzxx rmzbr xbzns xlvrggj flxplq hbjmtc xpbxbv qnc sgn hxcc zhszc trjqbr qczmsk znhjn prtvmb zljsv qplx vphhllt vvnmqt zxnjkf cqs brkds gjlql rkllz zdpxfl lzxpn phkxp zsd frnmdqx hxq lsnnzp gtqfrp qltvp rsmstv hprqd fntg gfzmpxq vvbqtz mgrr tkrflnf jszqhpf vvz fvt jrlzcv prkblp kssgts nnrctqh ndkmq nltv tqlbk rnjlpq pffccf jtjtrd lkzfc rbbnskn dfsnq qvjk rtjbpd rmpfkv zbnv qcksk lnvrg qmqbz xqszlhq tvdntm zptr sgmsn txldvd (contains eggs, shellfish, fish)
|
||||
xkmz qktcqv frnmdqx qpndpm tfn ftrnplt xpbxbv rsmstv gfzmpxq zhszc gpvcz jszqhpf ltbqt fvghn kssgts khmzbj krnfm ndkmq rbbnskn scnc fqrm qmcdlz zqnn qmqbz xlvrggj rlsr ftdbz jgjrj gtqfrp jrlzcv zljsv xqth mnn tlbtr vvz dktlp rkllz gzsdm fntg cqs tftpnc fnlqrk tdszhqn hzxx fvjkp qltvp fnpkmh nltv qvjk tsjtr tcfgv (contains sesame)
|
||||
hbrplx xpbxbv mnn rmpfkv xdjk ftdbz fvt htmb vphhllt rtjbpd ndkmq xlvrggj xqszlhq xbzns rlsr qpkbc gzsdm krnfm srfm prtvmb fvjkp zqnn nzqx rzbncvnc tglj mqv qmqbz qmcdlz nhldb ffj nxvzp szsrnsc hnngrhk jrpm dqspdq plxs lzxpn xqth lhtpf zdpxfl sfghbs jrlzcv tcflf qltvp jjhfbn mqscmlf tkv hbjmtc tcfgv flxplq dfsnq crjpt trjqbr jnlgn ltbqt jszqhpf zgzt qszsz dktlp jmvv brkds rbbnskn lnvrg tfn prkblp tvz rkllz zcxq jtjtrd prpbcv gtqfrp vrgdk krpcn rkkgm cqs qjg zhszc zvrm rd rbjdgh tvdntm xkmz (contains fish, sesame)
|
||||
vmq cqkprv rkllz mqscmlf dqspdq rxjsq nxvzp fvjkp jtjtrd xpbxbv lzxpn tcflf qthxnb kzrk gtqfrp tqlbk tcfgv vhdt fsmqv rd cvnmx vvrhc hxcc zgzt qszsz ftdbz qltvp czzx qcksk lfckh gzsdm bvdqd qczmsk rlsr brvz tdszhqn kzklp lkzfc zhszc crjpt vmb rbjdgh rtjbpd tkrflnf hzxx xrvgdh xbzns fntg vpvm mfbfsz jnlgn qjg nzqx zxnjkf tvz zptr sgn fnlqrk zqnn vrgdk rbbnskn pdst (contains wheat, dairy)
|
||||
lfckh jgjrj xpbxbv lkzfc fntg mfbfsz vmq vrgdk rnjlpq tqlbk szsrnsc rkkpgs rbjdgh jrpm plxs zgdt qthxnb jtjtrd zkxxnhn bmpnrhb lzxpn mbx hbjmtc vhr lnvrg gjlql zqnn gtqfrp vvnmqt qnc qpndpm xkmz fvghn mbdbf zbnv rzbrrr qlrxfv vpvm znhjn qktcqv tsjtr qltvp rd pdst fvjkp xlvrggj rzbncvnc qvjk sxpbg czzx rlsr qczmsk (contains shellfish, soy)
|
||||
zqnn fvjkp qmqbz hnngrhk vdjtl xpbxbv srfm zhszc fktgv sxpbg vvz btttz lxpqkn hzxx lnvrg vhdt lfckh vphhllt rnjlpq gtqfrp tzc qktcqv plxs zsd xlvrggj qszsz rzbncvnc rkkgm dkshp jgjrj qlrxfv ztpmz mgrr fntg jrpm trpbj jtjtrd txldvd smbdlcg pdst vrgdk rkllz bxc rmpfkv kssgts zljsv (contains soy)
|
||||
cvnmx sdggf hnngrhk ltbqt srfm flxplq qthxnb prpbcv zkkz tcflf gpvcz dlzb bvdqd zvrm plxs znhjn fktgv xgc rzbrrr hzxx jgjrj rzbncvnc dkshp fsmqv fvt fvghn trpbj jnlgn qmcdlz nnrctqh brvz qpndpm kzrk xpbxbv xlvrggj nltv kzklp krnfm crbd ffj dqspdq kstd qczmsk dtkr vhdt qjg sgmsn frnmdqx rmzbr jtjtrd qlrxfv xbzns rlsr fvjkp qrbbf fntg trjqbr ftdbz sgn txldvd zptr vmq prkblp lxpqkn lkzfc rkkpgs tvdntm tkv rbjdgh krpcn mgrr srjv mbx vvrhc mbdbf qnc phkxp gtqfrp hbjmtc zsd (contains fish, sesame)
|
||||
zgdt czzx rxv cghkbp tglj rkkpgs vdjtl ftdbz vhr tdszhqn tsjtr qmcdlz hprqd plxs xlvrggj mmdcl znhjn qczmsk frnmdqx jbslsbv vvbqtz tlbtr gtqfrp zkxxnhn fsmqv qmqbz zbnv smbdlcg brkds qpkbc qjg hbjmtc dqspdq zcxq rlsr nchjqv ltbqt sdggf qrbbf kzrk lkzfc ftrnplt zqnn tvz zsd fntg sfghbs srfm dtkr crjpt htmb hnngrhk nnrctqh rbbnskn rsmstv mfbfsz fvt zkkz jtjtrd zhszc pdst jjhfbn xpbxbv tkv nxvzp qcksk vvrhc fktgv dfsnq prkblp ftssfh vvz (contains shellfish, eggs, peanuts)
|
||||
trjqbr ndkmq fntg trpbj vhmpqd btttz prkblp brkds tfn qthxnb lnvrg xlvrggj xpbxbv xrvgdh hxq qmcdlz hbjmtc ftrnplt tkrflnf rbbnskn phkxp dfsnq sxpbg fvjkp gfzmpxq pffccf qpndpm sdggf zhbtz ztpmz zsd sgn zhszc ftssfh rd zvrm rlsr rkllz prtvmb rmpfkv bxc cqkprv qjg zkkz fvt mqv jtjtrd qczmsk ffj dktlp nnrctqh tcfgv mbx hbrplx lsnnzp (contains peanuts, soy, sesame)
|
||||
hzxx vpvm vphhllt xzd gpvcz btttz jtjtrd dqspdq sgmsn tvz xlvrggj ftdbz fnlqrk tglj zljsv rzbncvnc fsmqv xpbxbv rmpfkv qmqbz fntg pffccf zdpxfl cmffmd vvrhc rd zhszc qpndpm qszsz ztpmz lfckh fktgv zkkz xdjk nxvzp hxcc vrgdk qvks xrvgdh rxv rbbnskn qvjk nzqx vvz ndkmq zsd tkrflnf nltv mnn fnpkmh frnmdqx cqkprv vhmpqd kssgts mvmhqbpz dkshp qlrxfv tcfgv rkkgm tkv tsjtr zgzt dtkr cqs jszqhpf lkzfc hxq smbdlcg hprqd fvghn qnc prtvmb tlbtr rlsr lnvrg gzsdm tvdntm gtqfrp rzbrrr qthxnb (contains sesame, wheat, fish)
|
||||
nhldb vrgdk txldvd zhszc sgmsn czzx kssgts tcflf jgjrj mqscmlf rxv jszqhpf scnc lsnnzp xdjk qvks prtvmb cvnmx jrpm hzxx jtjtrd sgn rtjbpd dktlp jbslsbv fvt zvrm lhtpf trjqbr gtqfrp rlsr tkv sxpbg prpbcv fvghn hbrplx kzklp nnrctqh gzsdm zbnv lxpqkn ftdbz srjv tzc pffccf mmdcl szsrnsc tqlbk ltbqt fvjkp tdszhqn btttz mgrr sdggf dqspdq rbjdgh xqth gfzmpxq nltv rbbnskn flxplq rnjlpq jrlzcv qnc tbnlrpb qltvp smbdlcg qpndpm xpbxbv zgdt vdjtl dtkr tlbtr xlvrggj pdst zgzt vhmpqd rzbncvnc (contains shellfish, soy)
|
||||
mvmhqbpz ffj xlvrggj crbd jtjtrd dtkr hbjmtc zgdt gtqfrp szsrnsc lnvrg kzklp tftpnc khmzbj scnc lfckh rxv nzqx jrlzcv gzsdm mmdcl zcvs hzxx ndkmq sgmsn xzd txldvd mnn fnlqrk rlsr rtjbpd plxs dkshp sgn srfm nchjqv fqrm tkrflnf hxcc bxc xpbxbv tlbtr nhldb qktcqv rbbnskn ztpmz zhszc nxvzp nltv fvghn zhbtz kssgts rsmstv qvks qplx vpvm lsnnzp cqkprv qrbbf hbrplx tfn rmpfkv crjpt brvz xkmz sdggf vvz vphhllt rxjsq fntg tzc prpbcv rkkgm fktgv zcxq (contains sesame, fish)
|
||||
scnc cqkprv kssgts szsrnsc cqs tkrflnf zcvs crjpt dktlp trjqbr qjg vhr lzxpn sdggf xkmz khmzbj ftrnplt rd qvjk fntg qthxnb xqth mnn jtjtrd ftdbz brkds pffccf cghkbp jgjrj dkshp vvrhc qktcqv zptr sxpbg vvbqtz sfghbs rzbrrr lfckh ffj rmpfkv lxpqkn mgrr lnvrg vmq czzx nltv qczmsk phkxp jszqhpf txldvd vvz tzc tdszhqn zgdt tvz zhszc rlsr vrgdk prpbcv znhjn fvjkp prkblp fnpkmh nhldb zxnjkf xlvrggj zvrm qpndpm ltbqt jrpm ftssfh tvdntm hxcc nnrctqh xbzns xpbxbv (contains soy)
|
||||
zhszc nxvzp hbjmtc xgc gzsdm kzrk vvnmqt mqscmlf hzxx rlsr rzbrrr tcflf rmpfkv jtjtrd szsrnsc vmb zdpxfl frnmdqx gfzmpxq sgn vhdt qplx jbslsbv lsnnzp xpbxbv vmq gtqfrp crbd zvrm xdjk lkzfc zqnn bxc fvjkp tbnlrpb qczmsk zkxxnhn nzqx rxv xlvrggj tcfgv lzxpn vvrhc gjlql lhtpf fvghn tftpnc gpvcz txldvd (contains peanuts)
|
||||
xlvrggj rlsr gjlql trpbj kzklp rzbncvnc nhldb xkmz hlhc fqrm rzbrrr dfsnq mvmhqbpz zkxxnhn vdjtl dlzb bmpnrhb kzrk rtjbpd xpbxbv flxplq tftpnc qmqbz krnfm fntg jszqhpf qltvp sgmsn trjqbr tsjtr dqspdq tvdntm qplx fsmqv vvnmqt qszsz cqs fvjkp nnrctqh tcfgv rnjlpq xbzns jtjtrd tzc gtqfrp xqszlhq mmdcl tbnlrpb rxjsq kstd fvt sgn zbnv fnpkmh (contains dairy, sesame)
|
||||
fntg jszqhpf xrvgdh ztpmz xpbxbv qszsz hbjmtc plxs cghkbp tkv zhszc cmffmd lnvrg qjg tvz vvz qnc flxplq qpkbc rmpfkv tbnlrpb dlzb bmpnrhb hlhc rmzbr hxcc zhbtz gzsdm gtqfrp mqscmlf qvjk fvghn hbrplx bxc qltvp jrlzcv vhr tzc lhtpf zbnv sfghbs kssgts vhmpqd hnngrhk qthxnb tftpnc krpcn zgzt fvjkp rsmstv vdjtl jtjtrd mnn jbslsbv rlsr ltbqt tglj (contains wheat, dairy, sesame)
|
||||
crbd krnfm jtjtrd dlzb tcfgv dfsnq ltbqt rkkpgs ffj zgzt dkshp ztpmz vdjtl crjpt smbdlcg phkxp tkrflnf kzrk tftpnc bvdqd vhr frnmdqx scnc rzbrrr sfghbs xpbxbv xzd gpvcz qpkbc pdst cqkprv rzbncvnc xlvrggj srjv ftdbz rsmstv qrbbf sxpbg prkblp hxq hlhc zgdt rlsr vvrhc pffccf vphhllt vmb hnngrhk bxc fvghn czzx nxvzp vhmpqd gtqfrp lkzfc lsnnzp prpbcv lnvrg xkmz xqth fvjkp tcflf rkkgm fnpkmh zkxxnhn jszqhpf qmqbz rbbnskn qvks tkv nltv tdszhqn kstd qplx fntg (contains sesame, eggs, peanuts)
|
||||
zqnn jtjtrd rzbncvnc fqrm fvjkp zsd vhr dkshp btttz fvt fntg lnvrg rlsr xgc sgn rkllz dlzb vmb qktcqv phkxp szsrnsc txldvd rmpfkv mbx gzsdm xlvrggj tkrflnf mfbfsz xrvgdh hxcc qmcdlz tftpnc tkv rsmstv xdjk zljsv krpcn zgdt smbdlcg prpbcv gtqfrp qjg qvks vphhllt tdszhqn prtvmb zhszc cghkbp qczmsk vrgdk gfzmpxq (contains fish)
|
||||
vhmpqd jjhfbn xpbxbv brvz qthxnb lkzfc xrvgdh fvt xqth tdszhqn gtqfrp tkrflnf kzrk zgdt dkshp kssgts mbx gjlql jtjtrd cvnmx gjmbv tvz zptr kstd rxv fntg prpbcv qplx zbnv jbslsbv trjqbr mfbfsz fvjkp ftdbz phkxp mgrr tvdntm dlzb crjpt vvz tsjtr xlvrggj nhldb zhszc fvghn qczmsk tftpnc htmb ndkmq rbjdgh vvrhc (contains wheat, soy)
|
||||
xlvrggj tglj rzbrrr dtkr trjqbr prtvmb zvrm jnlgn xqszlhq cqkprv vphhllt fqrm qczmsk cmffmd khmzbj rbbnskn zkxxnhn xpbxbv jbslsbv fvjkp xbzns mmdcl brvz rkkpgs fnpkmh scnc gtqfrp nltv zhszc fvt rmpfkv qjg mgrr qpndpm zsd vvbqtz tftpnc ltbqt jtjtrd prpbcv dqspdq rlsr ztpmz (contains eggs)
|
||||
fnpkmh hprqd kssgts czzx mnn tlbtr ltbqt bvdqd vrgdk tftpnc ftssfh hxcc tfn vhdt fntg szsrnsc bmpnrhb zljsv hbrplx lzxpn ztpmz kzrk kstd xqszlhq rtjbpd mqv qpkbc tzc zbnv qvjk rlsr sfghbs phkxp qszsz qnc txldvd nxvzp rbjdgh lkzfc xrvgdh gtqfrp gpvcz qczmsk nnrctqh tdszhqn dktlp hbjmtc rzbncvnc qrbbf zfsbvl vphhllt xlvrggj dlzb xdjk zhszc jtjtrd zkxxnhn dtkr rkllz jrlzcv vdjtl lfckh tkrflnf btttz zqnn rbbnskn fvjkp ftdbz krnfm hnngrhk rmzbr pffccf flxplq zgzt ndkmq zptr (contains wheat, eggs)
|
||||
szsrnsc nnrctqh rxv prpbcv dfsnq ndkmq rxjsq qlrxfv jgjrj dkshp rkllz zdpxfl scnc rlsr qnc crjpt lsnnzp nhldb zcxq xdjk gzsdm hxq fvjkp mbdbf xpbxbv tvz tqlbk ftdbz crbd bxc zkxxnhn fntg pdst lnvrg krpcn vrgdk tsjtr fnpkmh zhszc tzc qmcdlz qpkbc kssgts gtqfrp gfzmpxq qszsz trpbj phkxp hlhc xzd xlvrggj zljsv (contains wheat)
|
||||
nchjqv mgrr tvz prpbcv rlsr sgn jjhfbn gjlql zgzt nhldb vmq gtqfrp xrvgdh cghkbp nzqx vvbqtz bmpnrhb mvmhqbpz fnlqrk brkds hzxx vvz fvghn krnfm tbnlrpb zcxq gzsdm kssgts rkllz fntg tlbtr zljsv rzbncvnc kzrk rbbnskn sdggf ftdbz lnvrg zbnv lxpqkn vhr szsrnsc rxv fktgv zcvs zptr jgjrj mfbfsz cqkprv jbslsbv dqspdq xpbxbv lzxpn jtjtrd rbjdgh fvjkp rtjbpd cqs htmb gpvcz lkzfc tdszhqn hprqd zhszc sxpbg qjg fqrm qvjk tkrflnf xdjk vvrhc cvnmx zsd jszqhpf qpndpm rkkgm krpcn rxjsq vpvm mbdbf qltvp rsmstv (contains eggs)
|
53
2020/inputs/day_22
Normal file
53
2020/inputs/day_22
Normal file
@@ -0,0 +1,53 @@
|
||||
Player 1:
|
||||
1
|
||||
43
|
||||
24
|
||||
34
|
||||
13
|
||||
7
|
||||
10
|
||||
36
|
||||
14
|
||||
12
|
||||
47
|
||||
32
|
||||
11
|
||||
3
|
||||
9
|
||||
25
|
||||
37
|
||||
21
|
||||
2
|
||||
45
|
||||
26
|
||||
8
|
||||
23
|
||||
6
|
||||
49
|
||||
|
||||
Player 2:
|
||||
44
|
||||
5
|
||||
46
|
||||
18
|
||||
39
|
||||
50
|
||||
4
|
||||
41
|
||||
17
|
||||
28
|
||||
30
|
||||
42
|
||||
33
|
||||
38
|
||||
35
|
||||
22
|
||||
16
|
||||
27
|
||||
40
|
||||
48
|
||||
19
|
||||
29
|
||||
15
|
||||
31
|
||||
20
|
1
2020/inputs/day_23
Normal file
1
2020/inputs/day_23
Normal file
@@ -0,0 +1 @@
|
||||
589174263
|
406
2020/inputs/day_24
Normal file
406
2020/inputs/day_24
Normal file
@@ -0,0 +1,406 @@
|
||||
neneeenenesweneswneesewenenwneew
|
||||
eswswenweeseneseswwsenewsenw
|
||||
seeweswwneswnwwwenwwwwwnenwwsesw
|
||||
swsweseseseswswsenwswseswswsese
|
||||
eseseseswsenweseseneseswnwneeewww
|
||||
sweeeeeenweseenesweee
|
||||
nwnwsewenwwnwnwsenwwnwseswnwnw
|
||||
swswswwwswweswswswswswenenesesewwwe
|
||||
swnwenenesenwsewswswseeeswnwwnewwsese
|
||||
senwweewnwweswnenwwsw
|
||||
ewneswswsweenwwnwsenwswnewsenwnwsw
|
||||
nenenwwneenwnwnwwnesewsenenwnwnenwnw
|
||||
nwnwwsenwwnwnwnwnwwnwnwewwnw
|
||||
wnwnwnwnwseswwnwnwesewsenwnwnwnwnenew
|
||||
seswewwneweswnwnwswwsw
|
||||
neswesenenenewwswnenwnenenenwnenenenese
|
||||
nwwswsenwnenwnesenwnwsenwnwnwwnwsenenwse
|
||||
senwswwswwnweswswneswswwswnweswseswew
|
||||
neeeeswnweswseeeeeneeeeenwwnene
|
||||
nwnewnwnwnwswnewwsewnwwseenenwnww
|
||||
eeseeeeeswneenwewee
|
||||
neseseseeenwwseseeseneswnenwsewswse
|
||||
wswswnwnwwswswneswwweeswswswwww
|
||||
swnwnwneswswseswseswswswswswnwseswsesenesw
|
||||
swneesenwnwnwwnwnwnenwnwnwnwnewnwsese
|
||||
wswswswewnewnewsenewnwswseswswwse
|
||||
swenwnwnwnenwnenwnwswnenenwswwnenwsenw
|
||||
ewnenwnwweenwneesewnwwwwnwswse
|
||||
eeewnweneneeesweesweeeneeee
|
||||
nenwnwnwnwswwnwsewnwswswenwweswenw
|
||||
senenenenenenwneneewnenenene
|
||||
neneeneswnesewneneneeneneeenenenwe
|
||||
nwswenwseswnwswenwnwnewnwneww
|
||||
wnewwwweswwsww
|
||||
seseswsewesesenesesewseewseseenenwe
|
||||
neneseswnesenewwenenwneneneneneenew
|
||||
swswswswwsweswseswsewwneswswswswneswswsw
|
||||
sesenesesesenwsesesesenwsewnw
|
||||
nenenenenenewnwswnwnenwsenesenwneswwne
|
||||
swwnewweewwwwnwswnewwweswew
|
||||
swnwwswesenewwwswwswwweseswswnesw
|
||||
weeseseseneseseewwseseseseseseesese
|
||||
nwenenenwwnenenenenwneneneseswnenwenesw
|
||||
nwsewswswwswsweswnwwwnwswswsew
|
||||
nwewnwwwewnwwnwnwwnwswwnwwsewnw
|
||||
eesesesesesesewseseewneseesesesesenw
|
||||
nwwenwweswnwswenwnw
|
||||
sewseswswneneswnwenwneeswwnwwesenw
|
||||
eseswwnwnwwenewneswnwsweenwseswne
|
||||
wsewwswnwnwewnewswwwwswseswnew
|
||||
eswnenwnwnenwswnenwnwnwnenwnwnwnenwsewne
|
||||
neneewswnenenenenene
|
||||
nwseeseseesesesesesesese
|
||||
eenweneeeswswseeseeneesese
|
||||
sewneeneneswseeewnwswsenewswenwwenw
|
||||
nwwwweswnenwsenwwswnwwnwwwnwwnew
|
||||
nwewwneswnwwwnwswswsesweswswwseww
|
||||
neseswseweseeswsenwsesesesesw
|
||||
nwswswseswswseeswswseswnewneseswswwsw
|
||||
eweseeswseeeeseneenwenweeee
|
||||
nesewwwwneeseweswwseneeseseswseswsw
|
||||
nwswnwnewnewneeenwneeswwnwse
|
||||
swwnwsesewneneeneenwseswseswnww
|
||||
nwnwnwnwsenwnwnwnwnwnwnwnw
|
||||
wwnewnwsesewwwwwwnwseewsenenew
|
||||
swswswswenwswseswsweeswnwswswswswswswswnw
|
||||
nwnwseeswnwnwswnenwwnwnewnwnwwnwnw
|
||||
wnenenesesenwnwwnwsenenesewnewnenee
|
||||
senwswnwnwwenenwnenwnenesewswenewnene
|
||||
neseseeseneswswswswswwwswswnwswwsenesw
|
||||
neswwsesenwnwnwneswseseseseswnesenwsese
|
||||
eeweesenesweenweeneenwneeswse
|
||||
wwnewswsenwnwsesenwswseneeswswseswnese
|
||||
wnwsewnwnwnenwnwnwnwwnwnwwww
|
||||
wwswswewwwwwwswwwwnewnwnenw
|
||||
eeneseswswnewneneneenenenenenenenew
|
||||
wswwnwswwswneneneswnwnwnwswseneneswsenene
|
||||
nwswswewswsewswsewswsenweswswneswnwsw
|
||||
wwwwesewnwnewwwnewwwwsese
|
||||
nwnesenwnwnwnwswswnwwswwnwnwwwwneeenw
|
||||
swseseswenwswswnwswwnenesenesesesesesese
|
||||
nesewswswswsewswswnwswwswwswsw
|
||||
wnwwwnwnwnwnwsewsenwsewwwwwww
|
||||
wwwwwwwwswwswwwewwnw
|
||||
swseseseseeswsesesenwseseswseswwsenwse
|
||||
sweeeseeswnwenwneeenwneswenwneee
|
||||
nwswseswswswswwsweswnesesweswswswseswse
|
||||
nwnwenwnwnwnwnwswnwwnwnwwnenw
|
||||
wseewnwnwnwenewnenenesenewnenwnenwne
|
||||
nwsweswswswswswswswswsw
|
||||
swswwswwswswswswnenewenwewweswnw
|
||||
nwseeswnwnwseseseswneseswseseseenewsw
|
||||
wseswseseesenweeeseeeewnwenene
|
||||
newnenenwswnwnenenwneneseneneneenenesenw
|
||||
wnwnwswseenwnwnwnwenwwwnwnenwnwswne
|
||||
esesesesewneseswswsewswseswswneswsesesw
|
||||
wsewwwnewswwnenenwnwwnwwnwnwwwsew
|
||||
wsenwenwnwnwewwsesenwwwwnwnwnwnew
|
||||
nwnwnenesenenenwnenewnenenwneneswswnene
|
||||
eseneneewneneneeneeneneee
|
||||
nenenenwnwseswswnwwnwnwwesenwsenewswne
|
||||
neenwnwnenenwnwnwwnwnenwnwnwwnwswsenw
|
||||
swwwswwswswwnwwwnenwseswswwseswsenw
|
||||
nwsewneswnwesweeswnwwwnweswnwne
|
||||
neswsewswseswseswswswneswseswneseseswsww
|
||||
wsewwwnwnenwnwewwseenwwwwswnw
|
||||
neseseswseswwswswswnenwsesewswswswswsw
|
||||
swwsweswneseswswwswswswswweswwsw
|
||||
nenwneneswneeneenene
|
||||
eneweneseneeneeswswswenenesenenew
|
||||
swseeseswswesenwsesenwswnwnwseeesenwswsw
|
||||
nenenwnenwwwnenenweneneneseneswnenenene
|
||||
neneenenwswswseswwwnweswnenesesewnewse
|
||||
neneseneneseneenenenewswneeenenewnene
|
||||
swsweesenesenenenwnwnwswsweneseenww
|
||||
swnewwnwsewseswewsewsesenwneewnww
|
||||
enenewnenenenwnenenenw
|
||||
seseesesewwseseseseseswswseesesenese
|
||||
eeenwneeeewneneeeeewswneneee
|
||||
eswnwenweesenwseeswsweenwsenwnwesw
|
||||
eesweeeneneeneeeeewnweeewe
|
||||
seswswseseswswswsene
|
||||
newswnewswwwneswwwse
|
||||
neeswnenwewnwnesewsweneeswnwenesww
|
||||
eswwwwwwswnesewwwnewwnwwww
|
||||
ewsesenwseswsesenwsesesewesenwsenenese
|
||||
nenwnewswneneneneeeneneseneneneenee
|
||||
wwseseeeenwnwweseneewnweeeewsw
|
||||
nwneswnwnwnwwwnwseenwnwnwenenwnw
|
||||
swswswswswneswenwwweswswsw
|
||||
swenwwwnwnewswnenwneswnwesweswwe
|
||||
neswseenwseseeenwsesesew
|
||||
seseeesesenwnwseeseseseswnesese
|
||||
sweeeseseenwseeweesee
|
||||
swneswsweswnewwswseswswsw
|
||||
nwwwewsewwwwwwwwewswswnewsw
|
||||
nenenewneswsenenenenesenenenenenenenwneenw
|
||||
sewwwnesewswwnwwwwswewswwswew
|
||||
swswseswnwnwswswswswswswnwseswenwseswswsw
|
||||
nwnwnwnwnwnwnwnwnenwnwsenw
|
||||
nenwwewnwwsewnewwnwsewwwewseswe
|
||||
seseseswweewnwneneseseseesewsesesw
|
||||
swswesenewswswswwewswsesweswsw
|
||||
seseneneswwsewneeenwenenwseenwsee
|
||||
nenwenwwneewnwneswnwnenwseswnwenwnwnw
|
||||
sweswswswseswswswseseswseswwnesesesenw
|
||||
nweeesweeeeneseeseeenwenwwe
|
||||
sweewneneeeseeewswneeenwneenene
|
||||
swsewseseenwsenesewseseseswswseswnese
|
||||
wwwswseseswwnwwnwnenenwwswnwsenesene
|
||||
seswswswseeseswseseseswnwsenwseswswsesene
|
||||
nenwesenwswneneseeewsesesweeseeswse
|
||||
nwseswswnwseeswnwswsenwnwnenwnenwnwnenwnw
|
||||
neswnenwweesenwneswwneneswnwenenesw
|
||||
nwneswnesesenwswenwsesewewsweewsw
|
||||
neseeenenenewnenenweswew
|
||||
eenweesweewneneseneeswee
|
||||
weesenwsweenenenwswenenwneswenee
|
||||
nwswswsweseswwsweswswswswnwswswswswsw
|
||||
esweweseeeeseneeenweeeeee
|
||||
swneswswswwswnenwewswenwswswwnew
|
||||
eesweswnwseeeeeeeeneseeenwsee
|
||||
senwwswnwnwnwnwnwnenwnwnwnwnwwnenenwnese
|
||||
swwseeswswnwnenesewnenwsenweeeene
|
||||
enenwnesenenenenwnenewneneneewswswwne
|
||||
nwwneseseeseeseeseseeseseeseswnwsese
|
||||
sewwswsewnwwswnwnwnewenweneswesw
|
||||
eneeneeneeneewneeeeeeenwsesw
|
||||
wwenwwnesenwnwnwwww
|
||||
nwneneswnesenenenenwnwnenenenwnene
|
||||
sweneseseswewnwswwneneneneseneesenwnw
|
||||
nwewenwnwwwnwnenwsesenwnenesenwnwwwnw
|
||||
nwenwnwswsenwnwnwnenwnwnwnwnwwesenenw
|
||||
swswwnewweweswswnwswsenesewwwnww
|
||||
nenewneswnenenweenenenwswsenene
|
||||
swswswwswswswswswswswswswne
|
||||
eeswswenwswneenwenweseenwnweeese
|
||||
swnwnwnwwwsewnwnenwwwnww
|
||||
wswwwenenwwwweswseswnwswweswsw
|
||||
enewneneweseeswswenewnenwwnesene
|
||||
swsenesweswswswswwswswswseseseswwsw
|
||||
nwwseswnwsenwsenenwwnwnwneewwwwww
|
||||
wwsesesenwnwnenesenwenenwswneneenesw
|
||||
seseneweseeswseseneeseseesenwesese
|
||||
nwnwwswwwweenwwnwwswsewwneww
|
||||
eneneneeneswnenweneswenewneeseenenew
|
||||
eseewneesenewesenwsewewwwsee
|
||||
nwnwnwenenenwenwnwnwsenwnwnwswnewnenwne
|
||||
neseeeesewneseseweeseseswseseesese
|
||||
newwnwswwewneswseewsesweswneswwse
|
||||
seseseseseeseenwseeenwsesesesese
|
||||
eseswnesewseswswswsenwwswseswneswsee
|
||||
eeseseseneeeeeseeeseeew
|
||||
nwesweeneenwnwseneeeneeeneneneswse
|
||||
swswswswseseswnwneswswseswsewse
|
||||
senwnweswwnwwnwweseenwswsenwnwwse
|
||||
wneneneenenesenewnwswswenwnene
|
||||
eswseswneseseneseseeeeeewsenenwnew
|
||||
sewseeeeenwseese
|
||||
sesenwnwseseseswseseswswswseesenesesesenwse
|
||||
nwwneewseswneeeneneneseenenwewneese
|
||||
wwwswwnewwneswwwwwsewwwsw
|
||||
seswwwwneswneswwneswswswswswseww
|
||||
eewneenwsweseseweeeeneneneneesw
|
||||
swswsewswswwswswnewwswsww
|
||||
nwnwwswnenwwnwnenwswnwnwwsenwseeswwnw
|
||||
swswsenwnewseeswseseneneswsewnwsesesenwsw
|
||||
senwnwnwnwswneswnwenwnwwnesweswswnwnenw
|
||||
neenenewswnwswnwsewwewswsenwnwwsw
|
||||
senwnewnewnwwnwwnwseseswwnw
|
||||
seeseseeneswneeswnenwwswswwswnwswwe
|
||||
seswenweeneeneneneeneneneee
|
||||
nwwnwwenwwwwwwwnw
|
||||
swswswswwswwswwswsenenwsewnewneswswne
|
||||
newswnwnwswnwenwwnenwnwnwwwwsewnwnw
|
||||
eneewenweeeweeseenwseneeeswse
|
||||
seseseswenwseseweseseenwnee
|
||||
wnwwnenwswnwnwweeeswsw
|
||||
senesesenwswseseseenwseswseswswseswsesw
|
||||
seseseseseseseseseseseseenwsese
|
||||
seenwnwnwswsewweeweseeneesewswene
|
||||
wwwseswsesenwnwnenenwse
|
||||
nwwewnwnwwneswnwwnwnwnwwnwewswne
|
||||
neewneneseneneswnene
|
||||
wswwswnwwwswwwewswswsww
|
||||
wswwneswwswnwwnwnewseswsewswenwsw
|
||||
ewnwwwwswwnwesweswswwsw
|
||||
wswnwnwwnenwnewwsesewwseenewswenew
|
||||
wswwnenwwswnenenwnenenenenweswseseswe
|
||||
nesesenwswsweeswewwswneeneeeee
|
||||
nwswwwnewwwwwwneewnwsewsewsew
|
||||
nwwweswwswwwnwneswnwswenwnwneew
|
||||
nwnwswnwswenenenwnwwnwnenwnenenweew
|
||||
neswnwneseeneneenewswwnwnweseneene
|
||||
nwswswwwwseeswnwswwsweswwnwseswww
|
||||
neneseneswsesewenwseswneneswnenwwenew
|
||||
neneneeneneneseneeneseneww
|
||||
sweenenwenweeenesweeeenwesee
|
||||
seseseseseseneesesesesesesesew
|
||||
senesweewneeswenwseswseseeeesee
|
||||
nesesenwwswnwnwwnewsenenwswnwnenwsee
|
||||
neseewnwenenwwnewnenwnwsenwnwswswnwnw
|
||||
eswnenenwswnewsweseswseewsesenwsee
|
||||
enweeswenwewsweeeneenweeseesee
|
||||
senwswswwswwswswwswswswswseswswswneswne
|
||||
sweswwnwewseneeeenenewenweee
|
||||
newnenwnwswwseseseesenwsese
|
||||
enweeswseenwneeenenesweeneswenewsw
|
||||
nwnwnwnwnwswenwnwnwnwnwnweswnwnwnwnwnw
|
||||
nenenenweneswnesenwneswneneneneeneese
|
||||
seseeenwswnweeeewswseeeswwnwsenw
|
||||
esenwsewseseesewneseeseseseeeenese
|
||||
seewnwsesesenwesesesesewneeeseee
|
||||
eneseneewneneseweeneneeeneeee
|
||||
nwwnwenwswsenwnwnwnwnwwnwswwnwnwnwnew
|
||||
wnewwwwwwnwwwswnwww
|
||||
wnwenwsenwswnwnwnwwnenwnwnw
|
||||
eeneneswnwwneneswnwneeeneneneneewne
|
||||
wsewnwwwwewwwwwwwsenwwnwwe
|
||||
wwwseeseswsewsewewneswnwsewnenenw
|
||||
seseneswsewneswswseswseswswswseneswsesesw
|
||||
nwnwnwsenenweeneneeneswswneswneseeesw
|
||||
eswseswwnwswseswswswswneenwswseswsese
|
||||
eenewseneeeseneneeswwneeeenenee
|
||||
nweeeeseeeseeseeswenwnenweswee
|
||||
swswwneneneswenenwsenenenenenwnenwnwe
|
||||
nwenwnwnwseswnwnwnwnwnwnwsenwnwnwnwnwnwnw
|
||||
eswnwnweswsweseseswwswswnwseneswnenwswe
|
||||
wnesewneswwneswwwwnwwwwsese
|
||||
nwnenwnenenenenenenwneswnenwnenw
|
||||
neswenenwswneneswnwee
|
||||
wwnwwwwewwnwswnesewww
|
||||
esenwnwswenenwnewswneswwenwswwnwswnww
|
||||
swswwswnenwwswswnwseswswswwswswewsesw
|
||||
nenwsenewnwswswneeswnwnenwnwnweenwnwne
|
||||
neswwnwwwnwwwnenenwnwswwnwsenwnww
|
||||
neneeneswenenenenenenee
|
||||
swseweseneeeswwnenwswnwnwe
|
||||
eewswweneweeneneeenenenenenenene
|
||||
nwnwneneneneseneseswnenwnenwnwnenwnenene
|
||||
enwnwenenwswswswnwsenwswswseswseenwe
|
||||
eneneneneeeswneneenenenene
|
||||
enwnenwwwsenwwwswneswnwwenwewww
|
||||
neneneswnenewneneneeenwnenwnesewnene
|
||||
seswsenwsesesenwewseswseseseseswsesenenwse
|
||||
neneenewsesewneweeewseseenwneeene
|
||||
nwwswwwsesenwwwsenewwnwnew
|
||||
seseenesesesesesesesewesesee
|
||||
nwwnwswswswseswwswseneswswswswswswswswe
|
||||
wswwnwnwnwnwnwnwwnwnenwnwenwnwenwnw
|
||||
seseswseneeswneswnewwswwwnwneesenene
|
||||
nenwnwnwnenwnwnwnenwsenwnwnwnw
|
||||
eswwwwwsewwnewswswwwswswneswww
|
||||
esenwnwnweeewswneneswnwswnwswnenwnwnene
|
||||
nenweseenwneenenwseeeneseene
|
||||
newnwwsenwnwenwwwnwsewswnwnwenwww
|
||||
newenenenenenenwenwswswswsene
|
||||
nwsweswnwwnwewewwwenwwwwwnwwnw
|
||||
sewnwsewwnwsenenwwww
|
||||
swswnenwnwnewneswnewnweswsweswenwsenwse
|
||||
wsweseeswnwseenewseneenee
|
||||
eeeeeseeswnweeeenwseseewsese
|
||||
sesesesenewsesesewesesesenwseseseene
|
||||
sesewswseswsewseseseswweseeseseenese
|
||||
esenwswwseseseseesesesenweseseseswe
|
||||
nwnenenwnenwnwnenenesw
|
||||
nwnenweneenwnenwnwnwswnenwneneswnenwnw
|
||||
sewswswswswswnwswneeseswswswsw
|
||||
swwswswswwwwneswneswwswswswnweswsw
|
||||
neseswswesesewswwswswseswswnwseswnenese
|
||||
nwswnwneewneweeseeseewewneneew
|
||||
swseenenwwsenwnwnewneenwwewnwswe
|
||||
swsweseswswswwwwswswswnewswsw
|
||||
swnwwneneswswnwewwnwsenwenwnenwee
|
||||
ewswseseneesewseneswsenwswseseswsese
|
||||
eneeneeseswenwsewneeweenwnwese
|
||||
swnwswswseswswswseseeswnwswswsweswnwsww
|
||||
wwnwnwswnwsewwnwwnwwnwwnwsenwnee
|
||||
eeseeeswneseneseeweneweseee
|
||||
senesenwsesenwwsesesesesesesesesesesese
|
||||
nwnewesewneswneeeeneeneeswnesenene
|
||||
wesenwseswsweweenwnenwwnesese
|
||||
nenwnwneeswneneeneneneswneneswneneenwnee
|
||||
nwnwwsenwwnwnwwnwsenwnwenwnwnwwnwne
|
||||
nwnwsenwnwsenwnwnwnenwnwwnesenwnwenwne
|
||||
sewswweneesenenwneseswseswnweeeene
|
||||
nwswnwnwnwnwwsenwnwwnwnwenwnwesenwnw
|
||||
wwwwwwnenwwwwnesewwwse
|
||||
swnenenenenenenwneneswnwneesenwnenewne
|
||||
neneneswneneeneneneene
|
||||
wswneseswswnewwnewswwwwwwwswsww
|
||||
neeneseewnenwnwneseewneenenwwnenesww
|
||||
enwseswseesesewnesweeeeneswsesenese
|
||||
nwnwswnenenenwnwnwnenene
|
||||
wswswswneswneswwswswsweseswswseswseswsw
|
||||
sewseseesesweseneseseseseseswnwwsw
|
||||
swseswswwnesenewnwwnweenweswwsenw
|
||||
seseseswswseseseeseesesesesenwnwsesese
|
||||
nenewnenwneswnwnese
|
||||
seseneswseswswseseswswseswnwwswse
|
||||
nwneeeeseseneseseeseeeeeeeeww
|
||||
nwnwneenwswswnenwnenwnenwwneneenenwnwnw
|
||||
nwnwenwnwnwsenwnwenwnwwnwnwnwswnwnwnw
|
||||
wwnwwenesesewwwnewsesewnewwwe
|
||||
wnwnwwwewnwseswwwwwnewnwswnwe
|
||||
nwwwwswnesewwsewsenewnwnwsewnwnww
|
||||
nweeeenwseeeseee
|
||||
eneenewnwenewnwsesenewewswenenese
|
||||
eswwsweswseswnwsenewnenwswseswwww
|
||||
neswnesenenenwnenwenenwnwneneswneswnwne
|
||||
enwseswnwnweesewnwseeseseeseseseseesw
|
||||
wenwwwswnewswsesewwnwwnwnenewnw
|
||||
nwwseseswswewwswwsewneswnenwnwesww
|
||||
swnwnwnwswenenwnwnwnwsewenenenwnenesw
|
||||
weneswwswswnwsweeesenenwsenwwwsw
|
||||
eeseesenesesewnweseeenesweeeeew
|
||||
eseweseseseesenwwsesenese
|
||||
eneneneneneneneneeenenenenenwsw
|
||||
esenwnweswenenwnwswnwwnewneenewnww
|
||||
eeneneneeeeswneneenwsew
|
||||
seweeseesenewswsenwewwneeeeee
|
||||
newnwnwenwwnenesenewsenewswnweese
|
||||
neswwwswswswneww
|
||||
seswseswseneswseswswnewneswswswswsenenw
|
||||
eneeneeeenwswneneeswnweenwseneswnene
|
||||
neswseeswseseswswsewsese
|
||||
wnewwswwneswswwenewswswwwswwnene
|
||||
newswseswnwnwnwnenwnwnwnwnwnesenwne
|
||||
neewswseswswnwswswseneswswswswswseswsesw
|
||||
nwwneenwwwwsenwwseswenwnwswwnenw
|
||||
wwwenwwnwnwwnwnwnwe
|
||||
esesewsesesesesesenwsenwesenwswswswee
|
||||
nwsesesenweseswseseseseswsesewseseenwse
|
||||
newnwnwnenwswswwwnwwwnwwnwwnenwsw
|
||||
swsewsenwseseseswwseseneesweswswsese
|
||||
neeenweseeeeneswneeeeweee
|
||||
nwenwnwnwnenwwnwnenenwnw
|
||||
wwsewwenewwwwwwwsewwwnww
|
||||
neneenesweneeneenwnenwneneseseeee
|
||||
eswseneseseseeeeeeeseenwsewsese
|
||||
nenenwswneeswnesenenewwnenenenwenwsese
|
||||
nwwwwwewwswwswwnewwwwseeww
|
||||
swswswswswswswseseswneeswswseneswwswwsww
|
||||
nwneneswneeswenwseenweeneneewwwnee
|
||||
swswswswneswwneseswwseswswswsw
|
||||
swswseswneswwwswswwswsw
|
||||
nwenweseesweeeeneeseeswseeesw
|
||||
swswswsweswswnewwswwwswswwwnwswse
|
||||
sewneseseswsesesesesewseseswnwseneswse
|
||||
enenweeswsweswenwnwe
|
||||
nenenwnwnenwnenwwnwswnwnenwsenenwne
|
||||
neswseneswswnwwweneswnwseswswneewnese
|
||||
nenweswsweeneeneswnweeneswneswee
|
||||
wsenwseseseseeseseseseseseeseneswnese
|
||||
swnenwwnwnwenwnwswnwnesenesesewnwnenenw
|
||||
sweneeenenwenenenweeenenwsweeeswe
|
||||
sewewnesesewnenwsesesesweseswswsesesw
|
||||
neswswnenwneseseneneneneneneneswnenwnene
|
||||
newnewweewwwnwseswwseswwewswww
|
||||
senwseseseswswnesenweseswsewswsesesewsw
|
||||
senenenenenenwnwnwsewnwnwenwnwnwwnene
|
||||
nwnwenenwnwwneneswneneneneenwnwnwnese
|
||||
seseseseseseswwneswseswesewswseswnwse
|
||||
nenwnwnenwenenweswneneswweenwneneswnwnw
|
||||
swnwseswewnewnesesesesesesesee
|
||||
seswnenwwwewseneswswsenweneswnenenwe
|
2
2020/inputs/day_25
Normal file
2
2020/inputs/day_25
Normal file
@@ -0,0 +1,2 @@
|
||||
1614360
|
||||
7734663
|
44
2020/solutions/day_01.py
Normal file
44
2020/solutions/day_01.py
Normal file
@@ -0,0 +1,44 @@
|
||||
"""AOC Day 1"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
def read_input(input_path: str) -> tuple:
|
||||
"""take input file path and return appropriate data structure"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
entries = list()
|
||||
is_present = [False]*2020
|
||||
for entry in input_file.readlines():
|
||||
entries.append(int(entry))
|
||||
is_present[int(entry)-1] = True
|
||||
return (entries, is_present)
|
||||
|
||||
def part1(entries: list, is_present: list) -> int:
|
||||
"""part1 solver take a list of int and a list of bool and return an int"""
|
||||
for x in entries:
|
||||
complement = 2020 - x
|
||||
if complement > 0 and is_present[complement-1]:
|
||||
return x * complement
|
||||
return None
|
||||
|
||||
def part2(entries: list, is_present: list) -> int:
|
||||
"""part2 solver take a list of int and a list of bool and return an int"""
|
||||
for x, i in enumerate(entries):
|
||||
for y in entries[i:]:
|
||||
complement = 2020 - x - y
|
||||
if complement > 0 and is_present[complement-1]:
|
||||
return x * y * complement
|
||||
return None
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
entries, is_present = read_input(input_path)
|
||||
start_time = time.time()
|
||||
print("Part 1: %d" % part1(entries, is_present))
|
||||
print("Part 2: %d" % part2(entries, is_present))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
49
2020/solutions/day_02.py
Normal file
49
2020/solutions/day_02.py
Normal file
@@ -0,0 +1,49 @@
|
||||
"""AOC Day 2"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import re
|
||||
|
||||
def read_input(input_path: str) -> list:
|
||||
"""take input file path and return appropriate data structure"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
rules = list()
|
||||
for entry in input_file.readlines():
|
||||
splitted = re.split('-| |: ', entry)
|
||||
rule = [int(splitted[0]), int(splitted[1]), splitted[2], splitted[3]]
|
||||
rules.append(rule)
|
||||
return rules
|
||||
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver take a list of tuples and return an int"""
|
||||
correct_passwords = 0
|
||||
for entry in entries:
|
||||
occurrences = entry[3].count(entry[2])
|
||||
if occurrences in range(entry[0], entry[1]+1):
|
||||
correct_passwords += 1
|
||||
return correct_passwords
|
||||
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver take a list of tuples and return an int"""
|
||||
correct_passwords = 0
|
||||
for entry in entries:
|
||||
pos_1, pos_2, letter, password = entry[:]
|
||||
if (password[pos_1-1] == letter) != (password[pos_2-1] == letter):
|
||||
correct_passwords += 1
|
||||
return correct_passwords
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
entries = read_input(input_path)
|
||||
start_time = time.time()
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
59
2020/solutions/day_03.py
Normal file
59
2020/solutions/day_03.py
Normal file
@@ -0,0 +1,59 @@
|
||||
"""AOC Day 3"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
def read_input(input_path: str) -> list:
|
||||
"""take input file path and return appropriate data structure"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
lines = list()
|
||||
for line in input_file.readlines():
|
||||
lines.append(line.strip())
|
||||
return lines
|
||||
|
||||
|
||||
def slope_tree_check(lines: list, dx: int, dy: int) -> int:
|
||||
"""check how many trees would be encountered with a specific slope"""
|
||||
x_pos = 0
|
||||
y_pos = 0
|
||||
trees_encountered = 0
|
||||
line_length = len(lines[0])
|
||||
while y_pos < len(lines):
|
||||
if lines[y_pos][x_pos] == '#':
|
||||
trees_encountered += 1
|
||||
x_pos = (x_pos + dx) % line_length
|
||||
y_pos += dy
|
||||
return trees_encountered
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver take a list of strings and return an int"""
|
||||
return slope_tree_check(entries, 3, 1)
|
||||
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver take a list of tuples and return an int"""
|
||||
slopes = [
|
||||
(1, 1),
|
||||
(3, 1),
|
||||
(5, 1),
|
||||
(7, 1),
|
||||
(1, 2),
|
||||
]
|
||||
prod = 1
|
||||
for slope in slopes:
|
||||
prod *= slope_tree_check(entries, slope[0], slope[1])
|
||||
return prod
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
entries = read_input(input_path)
|
||||
start_time = time.time()
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
72
2020/solutions/day_04.py
Normal file
72
2020/solutions/day_04.py
Normal file
@@ -0,0 +1,72 @@
|
||||
"""AOC Day 4"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import re
|
||||
|
||||
def read_input(input_path: str) -> list:
|
||||
"""take input file path and return appropriate data structure"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
data = input_file.read()
|
||||
entries = re.split(r"(?:\r?\n){2,}", data.strip())
|
||||
passports = list()
|
||||
for entry in entries:
|
||||
passport = dict()
|
||||
entry = entry.replace('\n', ' ')
|
||||
data = entry.split(' ')
|
||||
for field in data:
|
||||
key, value = field.split(':')[:2]
|
||||
passport[key] = value
|
||||
passports.append(passport)
|
||||
return passports
|
||||
|
||||
def check_fields(passport: dict) -> bool:
|
||||
"""check if a passport contains all the required fields"""
|
||||
required_fields = ["byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid"]
|
||||
for required_field in required_fields:
|
||||
if required_field not in passport.keys():
|
||||
return False
|
||||
elif passport[required_field] == None or passport[required_field] == '':
|
||||
return False
|
||||
return True
|
||||
|
||||
def check_data(passport: dict) -> bool:
|
||||
"""check if all passport fields contains correct data"""
|
||||
return (1920 <= int(passport["byr"]) <= 2002 and
|
||||
2010 <= int(passport["iyr"]) <= 2020 and
|
||||
2020 <= int(passport["eyr"]) <= 2030 and
|
||||
((passport["hgt"].endswith("cm") and 150 <= int(passport["hgt"][:-2]) <= 193) or (passport["hgt"].endswith("in") and 59 <= int(passport["hgt"][:-2]) <= 76)) and
|
||||
re.match(r"^#[0-9a-f]{6}$", passport["hcl"]) and
|
||||
passport["ecl"] in ("amb", "blu", "brn", "gry", "grn", "hzl", "oth") and
|
||||
re.match(r"^[0-9]{9}$", passport["pid"]))
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver take a list of strings and return an int"""
|
||||
valid_passports = 0
|
||||
for passport in entries:
|
||||
if check_fields(passport):
|
||||
valid_passports += 1
|
||||
return valid_passports
|
||||
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver take a list of tuples and return an int"""
|
||||
valid_passports = 0
|
||||
for passport in entries:
|
||||
if check_fields(passport) and check_data(passport):
|
||||
valid_passports += 1
|
||||
return valid_passports
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
entries = read_input(input_path)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
39
2020/solutions/day_05.py
Normal file
39
2020/solutions/day_05.py
Normal file
@@ -0,0 +1,39 @@
|
||||
"""AOC Day 5"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
def read_input(input_path: str) -> list:
|
||||
"""take input file path and return appropriate data structure"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
entries = input_file.readlines()
|
||||
seats = list()
|
||||
for entry in entries:
|
||||
entry = entry.strip()
|
||||
seat = int(''.join(['0' if letter in 'FL' else '1' for letter in entry]), 2)
|
||||
seats.append(seat)
|
||||
seats.sort()
|
||||
return seats
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver take a list of strings and return an int"""
|
||||
return max(entries)
|
||||
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver take a list of strings and return an int"""
|
||||
missing = [seat for seat in range(entries[0], entries[-1]) if seat not in entries]
|
||||
return missing[0]
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
entries = read_input(input_path)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
74
2020/solutions/day_06.py
Normal file
74
2020/solutions/day_06.py
Normal file
@@ -0,0 +1,74 @@
|
||||
"""AOC Day 6"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import collections
|
||||
|
||||
TEST_INPUT = """abc
|
||||
|
||||
a
|
||||
b
|
||||
c
|
||||
|
||||
ab
|
||||
ac
|
||||
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
|
||||
b"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
groups = input_data.strip().split("\n\n")
|
||||
yes_count = list()
|
||||
for group in groups:
|
||||
persons = group.split("\n")
|
||||
yes_count.append((len(persons), collections.Counter(''.join(persons))))
|
||||
return yes_count
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver take a list of sets and return an int"""
|
||||
return sum(len(group[1].keys()) for group in entries)
|
||||
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver take a list of sets and return an int"""
|
||||
count = 0
|
||||
for group in entries:
|
||||
for key in group[1].keys():
|
||||
if group[1][key] == group[0]:
|
||||
count += 1
|
||||
return count
|
||||
|
||||
def test_input_day_6():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 11
|
||||
assert part2(entries) == 6
|
||||
|
||||
def test_bench_day_6(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
103
2020/solutions/day_07.py
Normal file
103
2020/solutions/day_07.py
Normal file
@@ -0,0 +1,103 @@
|
||||
"""AOC Day 6"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import collections
|
||||
|
||||
TEST_INPUT = """light red bags contain 1 bright white bag, 2 muted yellow bags.
|
||||
dark orange bags contain 3 bright white bags, 4 muted yellow bags.
|
||||
bright white bags contain 1 shiny gold bag.
|
||||
muted yellow bags contain 2 shiny gold bags, 9 faded blue bags.
|
||||
shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags.
|
||||
dark olive bags contain 3 faded blue bags, 4 dotted black bags.
|
||||
vibrant plum bags contain 5 faded blue bags, 6 dotted black bags.
|
||||
faded blue bags contain no other bags.
|
||||
dotted black bags contain no other bags."""
|
||||
|
||||
TEST_INPUT_2 = """shiny gold bags contain 2 dark red bags.
|
||||
dark red bags contain 2 dark orange bags.
|
||||
dark orange bags contain 2 dark yellow bags.
|
||||
dark yellow bags contain 2 dark green bags.
|
||||
dark green bags contain 2 dark blue bags.
|
||||
dark blue bags contain 2 dark violet bags.
|
||||
dark violet bags contain no other bags."""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> tuple:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
rules = input_data.split('\n')
|
||||
graph = dict()
|
||||
reverse_graph = dict()
|
||||
for rule in rules:
|
||||
container, contents = rule.split('contain')
|
||||
container = ' '.join(container.split()[:2])
|
||||
content_graph = dict()
|
||||
for content in contents.split(','):
|
||||
if content == " no other bags.":
|
||||
break
|
||||
parts = content.split()
|
||||
amount = int(parts[0])
|
||||
color = ' '.join(parts[1:3])
|
||||
content_graph[color] = amount
|
||||
|
||||
if color in reverse_graph.keys():
|
||||
reverse_graph[color].append(container)
|
||||
else:
|
||||
reverse_graph[color] = [container]
|
||||
graph[container] = content_graph
|
||||
return (graph, reverse_graph)
|
||||
|
||||
def part1(reverse_graph: dict, color: str) -> int:
|
||||
"""part1 solver take a dict of lists and return an int"""
|
||||
queue = collections.deque(reverse_graph[color])
|
||||
already_counted = set()
|
||||
while queue:
|
||||
container = queue.popleft()
|
||||
if container not in already_counted:
|
||||
already_counted.add(container)
|
||||
if container in reverse_graph.keys():
|
||||
queue += collections.deque(reverse_graph[container])
|
||||
return len(already_counted)
|
||||
|
||||
def part2(graph: dict, color: str) -> int:
|
||||
"""part2 solver take a dict of dicts and return an int"""
|
||||
def search_count(graph: dict, color: str) -> int:
|
||||
if not graph[color]:
|
||||
return 1
|
||||
count = 1
|
||||
for content, amount in graph[color].items():
|
||||
count += amount * search_count(graph, content)
|
||||
return count
|
||||
return search_count(graph, color)-1
|
||||
|
||||
def test_input_day_7():
|
||||
"""pytest testing function"""
|
||||
graph, reverse_graph = extract(TEST_INPUT)
|
||||
assert part1(reverse_graph, "shiny gold") == 4
|
||||
assert part2(graph, "shiny gold") == 32
|
||||
|
||||
graph, _ = extract(TEST_INPUT_2)
|
||||
assert part2(graph, "shiny gold") == 126
|
||||
|
||||
def test_bench_day_7(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
graph, reverse_graph = extract(input_data)
|
||||
print("Part 1: %d" % part1(reverse_graph, "shiny gold"))
|
||||
print("Part 2: %d" % part2(graph, "shiny gold"))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
106
2020/solutions/day_08.py
Normal file
106
2020/solutions/day_08.py
Normal file
@@ -0,0 +1,106 @@
|
||||
"""AOC 2020 Day 8"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """nop +0
|
||||
acc +1
|
||||
jmp +4
|
||||
acc +3
|
||||
jmp -3
|
||||
acc -99
|
||||
acc +1
|
||||
jmp -4
|
||||
acc +6"""
|
||||
|
||||
class Instruction:
|
||||
"""Instruction class hold an operation, an argument and an execution counter"""
|
||||
op = None
|
||||
arg = None
|
||||
|
||||
def __init__(self, op, arg):
|
||||
self.op = op
|
||||
self.arg = arg
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
instructions = list()
|
||||
for instruction in input_data.split('\n'):
|
||||
op, arg = instruction.split(' ')
|
||||
arg = int(arg)
|
||||
assert op in ('acc', 'jmp', 'nop')
|
||||
instructions.append(Instruction(op, arg))
|
||||
return instructions
|
||||
|
||||
def run(entries: list) -> (int, bool):
|
||||
"""run instructions"""
|
||||
instruction_counter = 0
|
||||
prev_instruction_counter = 0
|
||||
accumulator = 0
|
||||
exec_counter = [0]*len(entries)
|
||||
while instruction_counter < len(entries):
|
||||
prev_instruction_counter = instruction_counter
|
||||
instruction = entries[instruction_counter]
|
||||
|
||||
if exec_counter[instruction_counter] != 0:
|
||||
return accumulator, False
|
||||
|
||||
if instruction.op == 'nop':
|
||||
instruction_counter += 1
|
||||
elif instruction.op == 'acc':
|
||||
accumulator += instruction.arg
|
||||
instruction_counter += 1
|
||||
elif instruction.op == 'jmp':
|
||||
instruction_counter += instruction.arg
|
||||
else:
|
||||
raise ValueError('Invalid instruction operation %s' % instruction.op)
|
||||
|
||||
exec_counter[prev_instruction_counter] += 1
|
||||
|
||||
return accumulator, True
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver"""
|
||||
return run(entries)[0]
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver"""
|
||||
for instruction in entries:
|
||||
if instruction.op == 'acc':
|
||||
continue
|
||||
original_instruction = instruction.op
|
||||
instruction.op = 'jmp' if instruction.op == 'nop' else 'nop'
|
||||
accumulator, success = run(entries)
|
||||
if success:
|
||||
return accumulator
|
||||
instruction.op = original_instruction
|
||||
|
||||
def test_input_day_8():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 5
|
||||
assert part2(entries) == 8
|
||||
|
||||
def test_bench_day_8(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
87
2020/solutions/day_09.py
Normal file
87
2020/solutions/day_09.py
Normal file
@@ -0,0 +1,87 @@
|
||||
"""AOC 2020 Day 9"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import itertools
|
||||
|
||||
TEST_INPUT = """35
|
||||
20
|
||||
15
|
||||
25
|
||||
47
|
||||
40
|
||||
62
|
||||
55
|
||||
65
|
||||
95
|
||||
102
|
||||
117
|
||||
150
|
||||
182
|
||||
127
|
||||
219
|
||||
299
|
||||
277
|
||||
309
|
||||
576"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
entries = list()
|
||||
for entry in input_data.split('\n'):
|
||||
entries.append(int(entry))
|
||||
return entries
|
||||
|
||||
def part1(entries: list, preamble_length: int) -> int:
|
||||
"""part1 solver"""
|
||||
for index, entry in enumerate(entries[preamble_length:]):
|
||||
preamble = entries[index:index+preamble_length]
|
||||
if entry not in [i+j for i, j in itertools.combinations(preamble, 2)]:
|
||||
return entry
|
||||
return None
|
||||
|
||||
def part2(entries: list, invalid_number: int) -> int:
|
||||
"""part2 solver"""
|
||||
left, right = 0, 1
|
||||
interval_sum = entries[left] + entries[right]
|
||||
while True:
|
||||
if interval_sum < invalid_number:
|
||||
right += 1
|
||||
interval_sum += entries[right]
|
||||
elif interval_sum > invalid_number:
|
||||
interval_sum -= entries[left]
|
||||
left += 1
|
||||
else:
|
||||
numbers = sorted(entries[left:right+1])
|
||||
return numbers[0] + numbers[-1]
|
||||
|
||||
def test_input_day_9():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries, 5) == 127
|
||||
assert part2(entries, 127) == 62
|
||||
|
||||
def test_bench_day_9(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
invalid_number = part1(entries, 25)
|
||||
print("Part 1: %d" % invalid_number)
|
||||
print("Part 2: %d" % part2(entries, invalid_number))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
111
2020/solutions/day_10.py
Normal file
111
2020/solutions/day_10.py
Normal file
@@ -0,0 +1,111 @@
|
||||
"""AOC 2020 Day 10"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """16
|
||||
10
|
||||
15
|
||||
5
|
||||
1
|
||||
11
|
||||
7
|
||||
19
|
||||
6
|
||||
12
|
||||
4"""
|
||||
|
||||
TEST_INPUT_2 = """28
|
||||
33
|
||||
18
|
||||
42
|
||||
31
|
||||
14
|
||||
46
|
||||
20
|
||||
48
|
||||
47
|
||||
24
|
||||
23
|
||||
49
|
||||
45
|
||||
19
|
||||
38
|
||||
39
|
||||
11
|
||||
1
|
||||
32
|
||||
25
|
||||
35
|
||||
8
|
||||
17
|
||||
7
|
||||
9
|
||||
4
|
||||
2
|
||||
34
|
||||
10
|
||||
3"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
entries = [0]
|
||||
for entry in input_data.split('\n'):
|
||||
entries.append(int(entry))
|
||||
entries = sorted(entries)
|
||||
entries.append(entries[-1]+3)
|
||||
return entries
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver"""
|
||||
jolt_diff_1, jolt_diff_3 = 0, 0
|
||||
for index in range(len(entries)-1):
|
||||
diff = entries[index+1] - entries[index]
|
||||
if diff == 1:
|
||||
jolt_diff_1 += 1
|
||||
elif diff == 3:
|
||||
jolt_diff_3 += 1
|
||||
return jolt_diff_1*jolt_diff_3
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver"""
|
||||
distinct_paths = [0]*(entries[-1]+1)
|
||||
distinct_paths[0] = 1
|
||||
|
||||
for adapter in entries:
|
||||
distinct_paths[adapter] += distinct_paths[adapter-1] + distinct_paths[adapter-2] + distinct_paths[adapter-3]
|
||||
|
||||
return distinct_paths[len(distinct_paths)-1]
|
||||
|
||||
def test_input_day_10():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 35
|
||||
assert part2(entries) == 8
|
||||
entries = extract(TEST_INPUT_2)
|
||||
assert part1(entries) == 220
|
||||
assert part2(entries) == 19208
|
||||
|
||||
def test_bench_day_10(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
143
2020/solutions/day_11.py
Normal file
143
2020/solutions/day_11.py
Normal file
@@ -0,0 +1,143 @@
|
||||
"""AOC 2020 Day 11"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import copy
|
||||
|
||||
TEST_INPUT = """L.LL.LL.LL
|
||||
LLLLLLL.LL
|
||||
L.L.L..L..
|
||||
LLLL.LL.LL
|
||||
L.LL.LL.LL
|
||||
L.LLLLL.LL
|
||||
..L.L.....
|
||||
LLLLLLLLLL
|
||||
L.LLLLLL.L
|
||||
L.LLLLL.LL"""
|
||||
|
||||
FLOOR = 0
|
||||
EMPTY_SEAT = 1
|
||||
OCCUPIED_SEAT = 2
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
entries = []
|
||||
for row in input_data.split('\n'):
|
||||
entries.append([])
|
||||
for seat in row:
|
||||
if seat == '.':
|
||||
entries[-1].append(FLOOR)
|
||||
elif seat == 'L':
|
||||
entries[-1].append(EMPTY_SEAT)
|
||||
elif seat == '#':
|
||||
entries[-1].append(OCCUPIED_SEAT)
|
||||
else:
|
||||
raise ValueError("Invalid seat %s" % seat)
|
||||
return entries
|
||||
|
||||
def occupied_adjacent_neighbors(seats: list, row: int, column: int) -> int:
|
||||
"""return number of occupied adjacent neighbors of a given seat"""
|
||||
neigh_seats = [(0, -1), (1, -1), (1, 0), (1, 1), (0, 1), (-1, 1), (-1, 0), (-1, -1)]
|
||||
neighbors = 0
|
||||
rows = len(seats)
|
||||
columns = len(seats[0])
|
||||
for dy, dx in neigh_seats:
|
||||
nrow, ncolumn = row+dy, column+dx
|
||||
if 0 <= nrow < rows and 0 <= ncolumn < columns and seats[nrow][ncolumn] == OCCUPIED_SEAT:
|
||||
neighbors += 1
|
||||
return neighbors
|
||||
|
||||
def occupied_insight_neighbors(seats: list, row: int, column: int) -> int:
|
||||
"""return number of occupied in-sight neighbors of a given seat"""
|
||||
neigh_seats = [(0, -1), (1, -1), (1, 0), (1, 1), (0, 1), (-1, 1), (-1, 0), (-1, -1)]
|
||||
neighbors = 0
|
||||
rows = len(seats)
|
||||
columns = len(seats[0])
|
||||
for dy, dx in neigh_seats:
|
||||
nrow, ncolumn = row+dy, column+dx
|
||||
while 0 <= nrow < rows and 0 <= ncolumn < columns:
|
||||
seat = seats[nrow][ncolumn]
|
||||
if seat == OCCUPIED_SEAT:
|
||||
neighbors += 1
|
||||
break
|
||||
elif seat == EMPTY_SEAT:
|
||||
break
|
||||
nrow += dy
|
||||
ncolumn += dx
|
||||
return neighbors
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver"""
|
||||
seats = copy.deepcopy(entries)
|
||||
while True:
|
||||
new_grid = []
|
||||
changed = False
|
||||
for y, row in enumerate(seats):
|
||||
new_grid.append([])
|
||||
for x, seat in enumerate(row):
|
||||
neighbors = occupied_adjacent_neighbors(seats, y, x)
|
||||
if seat == EMPTY_SEAT and neighbors == 0:
|
||||
new_grid[-1].append(OCCUPIED_SEAT)
|
||||
changed = True
|
||||
elif seat == OCCUPIED_SEAT and neighbors >= 4:
|
||||
new_grid[-1].append(EMPTY_SEAT)
|
||||
changed = True
|
||||
else:
|
||||
new_grid[-1].append(seat)
|
||||
if changed:
|
||||
seats = new_grid
|
||||
else:
|
||||
return sum(row.count(OCCUPIED_SEAT) for row in seats)
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver"""
|
||||
seats = copy.deepcopy(entries)
|
||||
while True:
|
||||
new_grid = []
|
||||
changed = False
|
||||
for y, row in enumerate(seats):
|
||||
new_grid.append([])
|
||||
for x, seat in enumerate(row):
|
||||
neighbors = occupied_insight_neighbors(seats, y, x)
|
||||
if seat == EMPTY_SEAT and neighbors == 0:
|
||||
new_grid[-1].append(OCCUPIED_SEAT)
|
||||
changed = True
|
||||
elif seat == OCCUPIED_SEAT and neighbors >= 5:
|
||||
new_grid[-1].append(EMPTY_SEAT)
|
||||
changed = True
|
||||
else:
|
||||
new_grid[-1].append(seat)
|
||||
if changed:
|
||||
seats = new_grid
|
||||
else:
|
||||
return sum(row.count(OCCUPIED_SEAT) for row in seats)
|
||||
|
||||
def test_input_day_11():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 37
|
||||
assert part2(entries) == 26
|
||||
|
||||
def test_bench_day_11(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
116
2020/solutions/day_12.py
Normal file
116
2020/solutions/day_12.py
Normal file
@@ -0,0 +1,116 @@
|
||||
"""AOC 2020 Day 12"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """F10
|
||||
N3
|
||||
F7
|
||||
R90
|
||||
F11"""
|
||||
|
||||
LEFT, RIGHT = 'L', 'R'
|
||||
FORWARD = 'F'
|
||||
NORTH, SOUTH, EAST, WEST = 'N', 'S', 'E', 'W'
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
entries = []
|
||||
for line in input_data.split('\n'):
|
||||
instruction = (line[0], int(line[1:]))
|
||||
entries.append(instruction)
|
||||
return entries
|
||||
|
||||
def rotate_ship(direction: str, rotation: str) -> str:
|
||||
"""rotate the ship"""
|
||||
if direction == NORTH:
|
||||
return WEST if rotation == LEFT else EAST
|
||||
if direction == SOUTH:
|
||||
return EAST if rotation == LEFT else WEST
|
||||
if direction == EAST:
|
||||
return NORTH if rotation == LEFT else SOUTH
|
||||
if direction == WEST:
|
||||
return SOUTH if rotation == LEFT else NORTH
|
||||
return None
|
||||
|
||||
def move(direction: str, x: int, y: int, value: int) -> tuple:
|
||||
"""move the ship or the waypoint"""
|
||||
if direction == NORTH:
|
||||
return (x, y+value)
|
||||
if direction == SOUTH:
|
||||
return (x, y-value)
|
||||
if direction == EAST:
|
||||
return (x+value, y)
|
||||
if direction == WEST:
|
||||
return (x-value, y)
|
||||
return None
|
||||
|
||||
def rotate_waypoint(direction: str, x: int, y: int, value: int) -> tuple:
|
||||
"""rotate waypoint around ship"""
|
||||
if (direction == LEFT and value == 90) or (direction == RIGHT and value == 270):
|
||||
return (-y, x)
|
||||
if ((direction == LEFT and value == 180) or (direction == RIGHT and value == 180)):
|
||||
return (-x, -y)
|
||||
if ((direction == LEFT and value == 270) or (direction == RIGHT and value == 90)):
|
||||
return (y, -x)
|
||||
return None
|
||||
|
||||
def part1(entries: list) -> int:
|
||||
"""part1 solver"""
|
||||
direction = EAST
|
||||
x_ship, y_ship = 0, 0
|
||||
|
||||
for action, value in entries:
|
||||
if action == FORWARD:
|
||||
x_ship, y_ship = move(direction, x_ship, y_ship, value)
|
||||
elif action in (LEFT, RIGHT):
|
||||
for _ in range(value//90):
|
||||
direction = rotate_ship(direction, action)
|
||||
else:
|
||||
x_ship, y_ship = move(action, x_ship, y_ship, value)
|
||||
return abs(x_ship) + abs(y_ship)
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver"""
|
||||
x_ship, y_ship = 0, 0
|
||||
x_wp, y_wp = 10, 1
|
||||
|
||||
for action, value in entries:
|
||||
if action == FORWARD:
|
||||
x_ship += x_wp * value
|
||||
y_ship += y_wp * value
|
||||
elif action in (LEFT, RIGHT):
|
||||
x_wp, y_wp = rotate_waypoint(action, x_wp, y_wp, value)
|
||||
else:
|
||||
x_wp, y_wp = move(action, x_wp, y_wp, value)
|
||||
return abs(x_ship) + abs(y_ship)
|
||||
|
||||
def test_input_day_12():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 25
|
||||
assert part2(entries) == 286
|
||||
|
||||
def test_bench_day_12(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
87
2020/solutions/day_13.py
Normal file
87
2020/solutions/day_13.py
Normal file
@@ -0,0 +1,87 @@
|
||||
"""AOC 2020 Day 13"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """939
|
||||
7,13,x,x,59,x,31,19"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> tuple:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
entries = input_data.split('\n')
|
||||
departure_ts = int(entries[0])
|
||||
timetable = entries[1].split(',')
|
||||
ids = [(-index, int(bus_id)) for index, bus_id in enumerate(timetable) if bus_id != 'x']
|
||||
return (departure_ts, ids)
|
||||
|
||||
def egcd(a, b):
|
||||
""""extended euclidean algorithm"""
|
||||
if a == 0:
|
||||
return (b, 0, 1)
|
||||
|
||||
g, y, x = egcd(b % a, a)
|
||||
return (g, x - (b // a) * y, y)
|
||||
|
||||
def modinv(x, m):
|
||||
"""calculate the modular multiplicative inverse"""
|
||||
g, inv, _ = egcd(x, m)
|
||||
assert g == 1
|
||||
return inv % m
|
||||
|
||||
def part1(entries: tuple) -> int:
|
||||
"""part1 solver"""
|
||||
wait_time = float('inf')
|
||||
best_bus_id = -1
|
||||
min_dep_time = entries[0]
|
||||
for _, bus_id in entries[1]:
|
||||
if min_dep_time % bus_id == 0:
|
||||
multiple = min_dep_time // bus_id
|
||||
else:
|
||||
multiple = (min_dep_time // bus_id) + 1
|
||||
time_diff = (bus_id * multiple) - min_dep_time
|
||||
if time_diff < wait_time:
|
||||
wait_time = time_diff
|
||||
best_bus_id = bus_id
|
||||
return wait_time * best_bus_id
|
||||
|
||||
def part2(entries: tuple) -> int:
|
||||
"""part2 solver"""
|
||||
min_timestamp = 0
|
||||
moduli_product = 1
|
||||
for _, modulo in entries[1]:
|
||||
moduli_product *= modulo
|
||||
for remainder, modulo in entries[1]:
|
||||
ni = moduli_product // modulo
|
||||
modulo_inv = modinv(ni, modulo)
|
||||
min_timestamp += (remainder * ni * modulo_inv)
|
||||
return min_timestamp % moduli_product
|
||||
|
||||
def test_input_day_13():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 295
|
||||
assert part2(entries) == 1068781
|
||||
|
||||
def test_bench_day_13(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
109
2020/solutions/day_14.py
Normal file
109
2020/solutions/day_14.py
Normal file
@@ -0,0 +1,109 @@
|
||||
"""AOC 2020 Day 14"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import re
|
||||
import itertools
|
||||
|
||||
TEST_INPUT = """mask = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X
|
||||
mem[8] = 11
|
||||
mem[7] = 101
|
||||
mem[8] = 0"""
|
||||
|
||||
TEST_INPUT_2 = """mask = 000000000000000000000000000000X1001X
|
||||
mem[42] = 100
|
||||
mask = 00000000000000000000000000000000X0XX
|
||||
mem[26] = 1"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
entries = list()
|
||||
mem_rexp = re.compile(r'mem\[(\d+)\] = (\d+)')
|
||||
for line in input_data.split('\n'):
|
||||
if line.startswith('mask'):
|
||||
entry = {
|
||||
'type': 'mask',
|
||||
'value': line[7:].rstrip(),
|
||||
}
|
||||
else:
|
||||
entry = {
|
||||
'type': 'mem',
|
||||
'value': mem_rexp.match(line).groups(),
|
||||
}
|
||||
entries.append(entry)
|
||||
return entries
|
||||
|
||||
def generate_addresses(addr: str, mask: str) -> list:
|
||||
"""generate all possible addresses from floating mask"""
|
||||
generator_bits = list()
|
||||
addresses = list()
|
||||
addr = format(int(addr), '036b')
|
||||
for addr_bit, mask_bit in zip(addr, mask):
|
||||
if mask_bit == '0':
|
||||
generator_bits.append(addr_bit)
|
||||
elif mask_bit == '1':
|
||||
generator_bits.append('1')
|
||||
else:
|
||||
generator_bits.append('01')
|
||||
for address in itertools.product(*generator_bits):
|
||||
addresses.append(int(''.join(address), 2))
|
||||
return addresses
|
||||
|
||||
def part1(entries: dict) -> int:
|
||||
"""part1 solver"""
|
||||
mem = dict()
|
||||
mask_set0s = 0
|
||||
mask_set1s = 0
|
||||
for entry in entries:
|
||||
if entry['type'] == 'mask':
|
||||
mask = entry['value']
|
||||
mask_set0s = int(mask.replace('X', '1'), 2)
|
||||
mask_set1s = int(mask.replace('X', '0'), 2)
|
||||
else:
|
||||
addr, value = entry['value']
|
||||
mem[addr] = (int(value) & mask_set0s) | mask_set1s
|
||||
return sum(mem.values())
|
||||
|
||||
def part2(entries: tuple) -> int:
|
||||
"""part2 solver"""
|
||||
mem = dict()
|
||||
mask = ''
|
||||
for entry in entries:
|
||||
if entry['type'] == 'mask':
|
||||
mask = entry['value']
|
||||
else:
|
||||
addr, value = entry['value']
|
||||
for address in generate_addresses(addr, mask):
|
||||
mem[address] = int(value)
|
||||
return sum(mem.values())
|
||||
|
||||
def test_input_day_14():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 165
|
||||
entries = extract(TEST_INPUT_2)
|
||||
assert part2(entries) == 208
|
||||
|
||||
def test_bench_day_14(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
68
2020/solutions/day_15.py
Normal file
68
2020/solutions/day_15.py
Normal file
@@ -0,0 +1,68 @@
|
||||
"""AOC 2020 Day 15"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """3,1,2"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
entries = list(map(int, input_data.split(',')))
|
||||
return entries
|
||||
|
||||
def calculate_last_spoken(numbers: list, turns: int) -> int:
|
||||
"""calculate the last spoken number at specified turn"""
|
||||
spoken = [0]*turns
|
||||
last_spoken = -1
|
||||
|
||||
for turn, number in enumerate(numbers, 1):
|
||||
spoken[number] = turn
|
||||
last_spoken = number
|
||||
|
||||
for prev_turn in range(len(numbers), turns):
|
||||
if spoken[last_spoken] != 0:
|
||||
current_spoken = prev_turn - spoken[last_spoken]
|
||||
else:
|
||||
current_spoken = 0
|
||||
spoken[last_spoken] = prev_turn
|
||||
last_spoken = current_spoken
|
||||
|
||||
return last_spoken
|
||||
|
||||
def part1(entries: dict) -> int:
|
||||
"""part1 solver"""
|
||||
return calculate_last_spoken(entries, 2020)
|
||||
|
||||
def part2(entries: tuple) -> int:
|
||||
"""part2 solver"""
|
||||
return calculate_last_spoken(entries, 30000000)
|
||||
|
||||
def test_input_day_15():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 1836
|
||||
assert part2(entries) == 362
|
||||
|
||||
def test_bench_day_15(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
136
2020/solutions/day_16.py
Normal file
136
2020/solutions/day_16.py
Normal file
@@ -0,0 +1,136 @@
|
||||
"""AOC 2020 Day 16"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import re
|
||||
|
||||
TEST_INPUT = """class: 1-3 or 5-7
|
||||
row: 6-11 or 33-44
|
||||
seat: 13-40 or 45-50
|
||||
|
||||
your ticket:
|
||||
7,1,14
|
||||
|
||||
nearby tickets:
|
||||
7,3,47
|
||||
40,4,50
|
||||
55,2,20
|
||||
38,6,12"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> tuple:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
values_rexp = re.compile(r'([0-9]+)-([0-9]+) or ([0-9]+)-([0-9]+)')
|
||||
rules_str, ticket_str, nearby_tickets_str = input_data.split('\n\n')
|
||||
|
||||
rules = dict()
|
||||
nearby_tickets = list()
|
||||
|
||||
for rule in rules_str.split('\n'):
|
||||
field, vals = rule.split(': ')
|
||||
ranges = values_rexp.match(vals)
|
||||
rules[field] = (
|
||||
(int(ranges.group(1)), int(ranges.group(2))),
|
||||
(int(ranges.group(3)), int(ranges.group(4)))
|
||||
)
|
||||
my_ticket = list(map(int, ticket_str.split('\n')[1].split(',')))
|
||||
|
||||
for ticket in nearby_tickets_str.split('\n')[1:]:
|
||||
nearby_tickets.append(list(map(int, ticket.split(','))))
|
||||
|
||||
return (rules, my_ticket, nearby_tickets)
|
||||
|
||||
def check_field(rule: tuple, field: int) -> bool:
|
||||
"""check if a field is valid given a rule"""
|
||||
for min_range, max_range in rule:
|
||||
if min_range <= field <= max_range:
|
||||
return True
|
||||
return False
|
||||
|
||||
def find_invalid_field(rules: dict, ticket: list) -> int:
|
||||
"""check if a ticket is valid or not"""
|
||||
for field in ticket:
|
||||
valid = False
|
||||
for rule in rules.values():
|
||||
valid = check_field(rule, field)
|
||||
if valid:
|
||||
break
|
||||
if not valid:
|
||||
return field
|
||||
return None
|
||||
|
||||
def part1(entries: tuple) -> tuple:
|
||||
"""part1 solver"""
|
||||
rules, _, nearby_tickets = entries
|
||||
valid_tickets = list()
|
||||
invalid_fields_sum = 0
|
||||
for ticket in nearby_tickets:
|
||||
invalid_field = find_invalid_field(rules, ticket)
|
||||
if invalid_field is not None:
|
||||
invalid_fields_sum += invalid_field
|
||||
else:
|
||||
valid_tickets.append(ticket)
|
||||
return valid_tickets, invalid_fields_sum
|
||||
|
||||
def part2(rules: dict, my_ticket: list, valid_tickets: list) -> int:
|
||||
"""part2 solver"""
|
||||
acceptable_fields = {key: [] for key in rules.keys()}
|
||||
field_map = {key: None for key in rules.keys()}
|
||||
departure_values_product = 1
|
||||
|
||||
for name, rule in rules.items():
|
||||
for index in range(len(my_ticket)):
|
||||
valid = True
|
||||
for ticket in valid_tickets:
|
||||
if not check_field(rule, ticket[index]):
|
||||
valid = False
|
||||
break
|
||||
if valid:
|
||||
acceptable_fields[name].append(index)
|
||||
|
||||
while not all(field is not None for field in field_map.values()):
|
||||
removed_index = -1
|
||||
for name, indexes in acceptable_fields.items():
|
||||
if len(indexes) == 1:
|
||||
field_map[name] = indexes[0]
|
||||
removed_index = indexes[0]
|
||||
break
|
||||
for name, indexes in acceptable_fields.items():
|
||||
if removed_index in indexes:
|
||||
acceptable_fields[name].remove(removed_index)
|
||||
|
||||
for name, index in field_map.items():
|
||||
if name.startswith('departure'):
|
||||
departure_values_product *= my_ticket[index]
|
||||
|
||||
return departure_values_product
|
||||
|
||||
def test_input_day_16():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
_, invalid_fields_sum = part1(entries)
|
||||
assert invalid_fields_sum == 71
|
||||
|
||||
def test_bench_day_16(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
valid_tickets, invalid_fields_sum = part1(entries)
|
||||
print("Part 1: %d" % invalid_fields_sum)
|
||||
print("Part 2: %d" % part2(entries[0], entries[1], valid_tickets))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
95
2020/solutions/day_17.py
Normal file
95
2020/solutions/day_17.py
Normal file
@@ -0,0 +1,95 @@
|
||||
"""AOC 2020 Day 17"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import itertools
|
||||
|
||||
TEST_INPUT = """.#.
|
||||
..#
|
||||
###"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str, dims: int) -> set:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
alive_cells = set()
|
||||
zeros = [0]*(dims-2)
|
||||
for x_cell, row in enumerate(input_data.split('\n')):
|
||||
for y_cell, cell in enumerate(row):
|
||||
if cell == '#':
|
||||
alive_cells.add((x_cell, y_cell, *zeros))
|
||||
return alive_cells
|
||||
|
||||
def count_alive_neighbors(alive_cells: set, coords: tuple) -> int:
|
||||
"""return the number of alive neighbors of a given cell"""
|
||||
alive = 0
|
||||
ranges = ((c-1, c, c+1) for c in coords)
|
||||
for cell in itertools.product(*ranges):
|
||||
if cell in alive_cells:
|
||||
alive += 1
|
||||
if coords in alive_cells:
|
||||
alive -= 1
|
||||
return alive
|
||||
|
||||
def get_cube_limits(alive_cells: set, dims: int) -> list:
|
||||
"""return cube bounds incremented for expansion"""
|
||||
limits = list()
|
||||
for i in range(dims):
|
||||
low = float('Inf')
|
||||
high = -float('Inf')
|
||||
for row in alive_cells:
|
||||
if row[i] < low:
|
||||
low = row[i]
|
||||
elif row[i] > high:
|
||||
high = row[i]
|
||||
limits.append(range(low-1, high+2))
|
||||
return limits
|
||||
|
||||
def step_cube(alive_cells: set, dims: int) -> set:
|
||||
"""return next step alive cells"""
|
||||
next_step = set()
|
||||
for cell in itertools.product(*get_cube_limits(alive_cells, dims)):
|
||||
alive_neighbors = count_alive_neighbors(alive_cells, cell)
|
||||
if (cell in alive_cells and alive_neighbors in (2, 3)) or alive_neighbors == 3:
|
||||
next_step.add(cell)
|
||||
return next_step
|
||||
|
||||
def part1(input_data: str) -> int:
|
||||
"""part1 solver"""
|
||||
cube = extract(input_data, 3)
|
||||
for _ in range(6):
|
||||
cube = step_cube(cube, 3)
|
||||
return len(cube)
|
||||
|
||||
def part2(input_data: str) -> int:
|
||||
"""part2 solver"""
|
||||
cube = extract(input_data, 4)
|
||||
for _ in range(6):
|
||||
cube = step_cube(cube, 4)
|
||||
return len(cube)
|
||||
|
||||
def test_input_day_17():
|
||||
"""pytest testing function"""
|
||||
assert part1(TEST_INPUT) == 112
|
||||
assert part2(TEST_INPUT) == 848
|
||||
|
||||
def test_bench_day_17(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
print("Part 1: %d" % part1(input_data))
|
||||
print("Part 2: %d" % part2(input_data))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
125
2020/solutions/day_18.py
Normal file
125
2020/solutions/day_18.py
Normal file
@@ -0,0 +1,125 @@
|
||||
"""AOC 2020 Day 18"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """1 + (2 * 3) + (4 * (5 + 6))
|
||||
2 * 3 + (4 * 5)
|
||||
5 + (8 * 3 + 9 + 3 * 4 * 3)
|
||||
5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))
|
||||
((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
return [exp.rstrip() for exp in input_data.split('\n')]
|
||||
|
||||
def regular_op(stack: list, num: int) -> list:
|
||||
"""return the stack after performing a regular math operation"""
|
||||
while stack:
|
||||
if stack[-1] == '(':
|
||||
break
|
||||
operator, left_operand = stack[-1], stack[-2]
|
||||
stack = stack[:-2]
|
||||
if operator == '+':
|
||||
num = left_operand + num
|
||||
elif operator == '*':
|
||||
num = left_operand * num
|
||||
stack.append(num)
|
||||
return stack
|
||||
|
||||
def advanced_op(stack: list, num: int, sub_expr: bool) -> list:
|
||||
"""return the stack after performing an advanced math operation"""
|
||||
if sub_expr:
|
||||
index = -1
|
||||
for stack_index, value in enumerate(stack):
|
||||
if value == '(':
|
||||
index = stack_index
|
||||
if index != -1:
|
||||
target = stack[index+1:]
|
||||
stack = stack[:index]
|
||||
else:
|
||||
target = stack
|
||||
stack = []
|
||||
for value in target:
|
||||
if value != '*':
|
||||
num *= int(value)
|
||||
while stack:
|
||||
if stack[-1] in '(*':
|
||||
break
|
||||
operator, left_operand = stack[-1], stack[-2]
|
||||
stack = stack[:-2]
|
||||
if operator == '+':
|
||||
num = left_operand + num
|
||||
stack.append(num)
|
||||
return stack
|
||||
|
||||
def evaluate(expression: str, advance: bool = False) -> tuple:
|
||||
"""return the result of an expression evaluated with regular or advanced math operator precendece"""
|
||||
stack = list()
|
||||
index = 0
|
||||
while index < len(expression):
|
||||
data = expression[index]
|
||||
if data.isdigit():
|
||||
num = int(data)
|
||||
if advance:
|
||||
stack = advanced_op(stack, num, False)
|
||||
else:
|
||||
stack = regular_op(stack, num)
|
||||
elif data in '*+(':
|
||||
stack.append(data)
|
||||
elif data == ')':
|
||||
num = int(stack[-1])
|
||||
if advance:
|
||||
stack = stack[:-1]
|
||||
stack = advanced_op(stack, num, True)
|
||||
else:
|
||||
stack = stack[:-2]
|
||||
stack = regular_op(stack, num)
|
||||
index += 1
|
||||
if advance and len(stack) > 1:
|
||||
stack = advanced_op(stack[:-1], int(stack[-1]), True)
|
||||
return stack[0]
|
||||
|
||||
def part1(entries: dict) -> int:
|
||||
"""part1 solver"""
|
||||
result_sum = 0
|
||||
for expression in entries:
|
||||
result_sum += evaluate(expression)
|
||||
return result_sum
|
||||
|
||||
def part2(entries: tuple) -> int:
|
||||
"""part2 solver"""
|
||||
result_sum = 0
|
||||
for expression in entries:
|
||||
result_sum += evaluate(expression, True)
|
||||
return result_sum
|
||||
|
||||
def test_input_day_18():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 26386
|
||||
assert part2(entries) == 693942
|
||||
|
||||
def test_bench_day_18(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
153
2020/solutions/day_19.py
Normal file
153
2020/solutions/day_19.py
Normal file
@@ -0,0 +1,153 @@
|
||||
"""AOC 2020 Day 19"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import re
|
||||
|
||||
TEST_INPUT = """0: 4 1 5
|
||||
1: 2 3 | 3 2
|
||||
2: 4 4 | 5 5
|
||||
3: 4 5 | 5 4
|
||||
4: "a"
|
||||
5: "b"
|
||||
|
||||
ababbb
|
||||
bababa
|
||||
abbbab
|
||||
aaabbb
|
||||
aaaabbb"""
|
||||
|
||||
TEST_INPUT_2 = """42: 9 14 | 10 1
|
||||
9: 14 27 | 1 26
|
||||
10: 23 14 | 28 1
|
||||
1: "a"
|
||||
11: 42 31
|
||||
5: 1 14 | 15 1
|
||||
19: 14 1 | 14 14
|
||||
12: 24 14 | 19 1
|
||||
16: 15 1 | 14 14
|
||||
31: 14 17 | 1 13
|
||||
6: 14 14 | 1 14
|
||||
2: 1 24 | 14 4
|
||||
0: 8 11
|
||||
13: 14 3 | 1 12
|
||||
15: 1 | 14
|
||||
17: 14 2 | 1 7
|
||||
23: 25 1 | 22 14
|
||||
28: 16 1
|
||||
4: 1 1
|
||||
20: 14 14 | 1 15
|
||||
3: 5 14 | 16 1
|
||||
27: 1 6 | 14 18
|
||||
14: "b"
|
||||
21: 14 1 | 1 14
|
||||
25: 1 1 | 1 14
|
||||
22: 14 14
|
||||
8: 42
|
||||
26: 14 22 | 1 20
|
||||
18: 15 15
|
||||
7: 14 5 | 1 21
|
||||
24: 14 1
|
||||
|
||||
abbbbbabbbaaaababbaabbbbabababbbabbbbbbabaaaa
|
||||
bbabbbbaabaabba
|
||||
babbbbaabbbbbabbbbbbaabaaabaaa
|
||||
aaabbbbbbaaaabaababaabababbabaaabbababababaaa
|
||||
bbbbbbbaaaabbbbaaabbabaaa
|
||||
bbbababbbbaaaaaaaabbababaaababaabab
|
||||
ababaaaaaabaaab
|
||||
ababaaaaabbbaba
|
||||
baabbaaaabbaaaababbaababb
|
||||
abbbbabbbbaaaababbbbbbaaaababb
|
||||
aaaaabbaabaaaaababaa
|
||||
aaaabbaaaabbaaa
|
||||
aaaabbaabbaaaaaaabbbabbbaaabbaabaaa
|
||||
babaaabbbaaabaababbaabababaaab
|
||||
aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> tuple:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
rules = dict()
|
||||
messages = list()
|
||||
rules_input, messages_input = input_data.split('\n\n')[0:2]
|
||||
|
||||
for rule_input in rules_input.split('\n'):
|
||||
rule_id, rule = rule_input.split(': ')
|
||||
rules[rule_id] = rule
|
||||
|
||||
messages = messages_input.split('\n')
|
||||
|
||||
return rules, messages
|
||||
|
||||
def get_regxp(rule_num: str, rules: dict):
|
||||
rule = rules[rule_num]
|
||||
if re.fullmatch('"."', rule):
|
||||
return rule[1]
|
||||
rule_parts = rule.split(' | ')
|
||||
or_rules = []
|
||||
for part in rule_parts:
|
||||
numbers = part.split(' ')
|
||||
or_rules.append(''.join(get_regxp(n, rules) for n in numbers))
|
||||
|
||||
return f"(?:{'|'.join(or_rules)})"
|
||||
|
||||
def get_regxp_upd(rule_num: str, rules: dict):
|
||||
if rule_num == '8':
|
||||
return f"{get_regxp_upd('42', rules)}+"
|
||||
elif rule_num == '11':
|
||||
rule_11 = (f"{get_regxp_upd('42', rules)}{{{n}}}{get_regxp_upd('31', rules)}{{{n}}}" for n in range(1, 22))
|
||||
return f"(?:{'|'.join(rule_11)})"
|
||||
|
||||
rule = rules[rule_num]
|
||||
if re.fullmatch('"."', rule):
|
||||
return rule[1]
|
||||
rule_parts = rule.split(' | ')
|
||||
or_rules = []
|
||||
for part in rule_parts:
|
||||
numbers = part.split(' ')
|
||||
or_rules.append(''.join(get_regxp_upd(n, rules) for n in numbers))
|
||||
|
||||
return f"(?:{'|'.join(or_rules)})"
|
||||
|
||||
def part1(entries: tuple) -> int:
|
||||
"""part1 solver"""
|
||||
rules, messages = entries
|
||||
regxp_0 = re.compile(get_regxp('0', rules))
|
||||
return sum(regxp_0.fullmatch(x) is not None for x in messages)
|
||||
|
||||
def part2(entries: tuple) -> int:
|
||||
"""part2 solver"""
|
||||
rules, messages = entries
|
||||
regxp_0 = re.compile(get_regxp_upd('0', rules))
|
||||
return sum(regxp_0.fullmatch(x) is not None for x in messages)
|
||||
|
||||
def test_input_day_19():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 2
|
||||
entries = extract(TEST_INPUT_2)
|
||||
assert part2(entries) == 12
|
||||
|
||||
def test_bench_day_19(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
306
2020/solutions/day_20.py
Normal file
306
2020/solutions/day_20.py
Normal file
@@ -0,0 +1,306 @@
|
||||
"""AOC 2020 Day 20"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import collections
|
||||
import operator
|
||||
import itertools
|
||||
|
||||
TEST_INPUT = """Tile 2311:
|
||||
..##.#..#.
|
||||
##..#.....
|
||||
#...##..#.
|
||||
####.#...#
|
||||
##.##.###.
|
||||
##...#.###
|
||||
.#.#.#..##
|
||||
..#....#..
|
||||
###...#.#.
|
||||
..###..###
|
||||
|
||||
Tile 1951:
|
||||
#.##...##.
|
||||
#.####...#
|
||||
.....#..##
|
||||
#...######
|
||||
.##.#....#
|
||||
.###.#####
|
||||
###.##.##.
|
||||
.###....#.
|
||||
..#.#..#.#
|
||||
#...##.#..
|
||||
|
||||
Tile 1171:
|
||||
####...##.
|
||||
#..##.#..#
|
||||
##.#..#.#.
|
||||
.###.####.
|
||||
..###.####
|
||||
.##....##.
|
||||
.#...####.
|
||||
#.##.####.
|
||||
####..#...
|
||||
.....##...
|
||||
|
||||
Tile 1427:
|
||||
###.##.#..
|
||||
.#..#.##..
|
||||
.#.##.#..#
|
||||
#.#.#.##.#
|
||||
....#...##
|
||||
...##..##.
|
||||
...#.#####
|
||||
.#.####.#.
|
||||
..#..###.#
|
||||
..##.#..#.
|
||||
|
||||
Tile 1489:
|
||||
##.#.#....
|
||||
..##...#..
|
||||
.##..##...
|
||||
..#...#...
|
||||
#####...#.
|
||||
#..#.#.#.#
|
||||
...#.#.#..
|
||||
##.#...##.
|
||||
..##.##.##
|
||||
###.##.#..
|
||||
|
||||
Tile 2473:
|
||||
#....####.
|
||||
#..#.##...
|
||||
#.##..#...
|
||||
######.#.#
|
||||
.#...#.#.#
|
||||
.#########
|
||||
.###.#..#.
|
||||
########.#
|
||||
##...##.#.
|
||||
..###.#.#.
|
||||
|
||||
Tile 2971:
|
||||
..#.#....#
|
||||
#...###...
|
||||
#.#.###...
|
||||
##.##..#..
|
||||
.#####..##
|
||||
.#..####.#
|
||||
#..#.#..#.
|
||||
..####.###
|
||||
..#.#.###.
|
||||
...#.#.#.#
|
||||
|
||||
Tile 2729:
|
||||
...#.#.#.#
|
||||
####.#....
|
||||
..#.#.....
|
||||
....#..#.#
|
||||
.##..##.#.
|
||||
.#.####...
|
||||
####.#.#..
|
||||
##.####...
|
||||
##..#.##..
|
||||
#.##...##.
|
||||
|
||||
Tile 3079:
|
||||
#.#.#####.
|
||||
.#..######
|
||||
..#.......
|
||||
######....
|
||||
####.#..#.
|
||||
.#...#.##.
|
||||
#.#####.##
|
||||
..#.###...
|
||||
..#.......
|
||||
..#.###..."""
|
||||
|
||||
MONSTER_PATTERN = (
|
||||
' # ',
|
||||
'# ## ## ###',
|
||||
' # # # # # # '
|
||||
)
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> dict:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
tiles = dict()
|
||||
for tile in input_data.split('\n\n'):
|
||||
parts = tile.split('\n')
|
||||
tile_id = int(parts[0][5:-1])
|
||||
tiles[tile_id] = parts[1:]
|
||||
return tiles
|
||||
|
||||
def edge(matrix: list, side: str) -> str:
|
||||
"""return a side of a matrix"""
|
||||
if side == 'n':
|
||||
return matrix[0]
|
||||
if side == 's':
|
||||
return matrix[-1]
|
||||
if side == 'e':
|
||||
return ''.join(map(operator.itemgetter(-1), matrix))
|
||||
return ''.join(map(operator.itemgetter(0), matrix))
|
||||
|
||||
def get_tiles_corners(tiles: dict) -> dict:
|
||||
"""return the corners of a set of tiles"""
|
||||
matching_sides = collections.defaultdict(str)
|
||||
corners = {}
|
||||
|
||||
for id_tile1, id_tile2 in itertools.combinations(tiles, 2):
|
||||
tile1, tile2 = tiles[id_tile1], tiles[id_tile2]
|
||||
|
||||
for side_a in 'nsew':
|
||||
for side_b in 'nsew':
|
||||
edge_a, edge_b = edge(tile1, side_a), edge(tile2, side_b)
|
||||
|
||||
if edge_a == edge_b or edge_a == edge_b[::-1]:
|
||||
matching_sides[id_tile1] += side_a
|
||||
matching_sides[id_tile2] += side_b
|
||||
|
||||
for tid, sides in matching_sides.items():
|
||||
if len(sides) == 2:
|
||||
corners[tid] = sides
|
||||
|
||||
assert len(corners) == 4
|
||||
return corners
|
||||
|
||||
def rotate90(matrix: list) -> tuple:
|
||||
"""return the matrix rotated by 90"""
|
||||
return tuple(''.join(column)[::-1] for column in zip(*matrix))
|
||||
|
||||
def possible_orientations(matrix: list) -> list:
|
||||
"""return all possible orientations of a given matrix"""
|
||||
orientations = [matrix]
|
||||
for _ in range(3):
|
||||
matrix = rotate90(matrix)
|
||||
orientations.append(matrix)
|
||||
return orientations
|
||||
|
||||
def possible_arrangements(matrix: list) -> list:
|
||||
"""return all possible arrangements of a given matrix"""
|
||||
arrangements = possible_orientations(matrix)
|
||||
arrangements.extend(possible_orientations(matrix[::-1]))
|
||||
return arrangements
|
||||
|
||||
def strip_edges(matrix: list) -> list:
|
||||
"""return a matrix without it's edges"""
|
||||
return [row[1:-1] for row in matrix[1:-1]]
|
||||
|
||||
def matching_tile(tile: list, tiles: dict, side_a: str, side_b: str) -> list:
|
||||
"""return the adjacent tile of a given one"""
|
||||
edge_a = edge(tile, side_a)
|
||||
|
||||
for other_id, other_tile in tiles.items():
|
||||
if tile is other_tile:
|
||||
continue
|
||||
|
||||
for other_arr in possible_arrangements(other_tile):
|
||||
if edge_a == edge(other_arr, side_b):
|
||||
tiles.pop(other_id)
|
||||
return other_arr
|
||||
|
||||
def matching_row(prev: list, tiles: dict, tiles_per_row: int) -> list:
|
||||
"""return matching tiles in the row of a given one"""
|
||||
matching_tiles = [prev]
|
||||
tile = prev
|
||||
for _ in range(tiles_per_row - 1):
|
||||
tile = matching_tile(tile, tiles, 'e', 'w')
|
||||
matching_tiles.append(tile)
|
||||
return matching_tiles
|
||||
|
||||
def build_image(top_left_tile: list, tiles: dict, image_dimension: int) -> list:
|
||||
"""build an image of a set of tiles"""
|
||||
first = top_left_tile
|
||||
image = []
|
||||
|
||||
while 1:
|
||||
image_row = matching_row(first, tiles, image_dimension)
|
||||
image_row = map(strip_edges, image_row)
|
||||
image.extend(map(''.join, zip(*image_row)))
|
||||
|
||||
if not tiles:
|
||||
break
|
||||
|
||||
first = matching_tile(first, tiles, 's', 'n')
|
||||
|
||||
return image
|
||||
|
||||
def count_pattern(image: list, pattern: tuple) -> int:
|
||||
"""return the number of times a given pattern appears in an image"""
|
||||
pattern_h, pattern_w = len(pattern), len(pattern[0])
|
||||
image_sz = len(image)
|
||||
deltas = []
|
||||
|
||||
for row_index, row in enumerate(pattern):
|
||||
for cell_index, cell in enumerate(row):
|
||||
if cell == '#':
|
||||
deltas.append((row_index, cell_index))
|
||||
|
||||
for img in possible_arrangements(image):
|
||||
appearances = 0
|
||||
for row_index in range(image_sz - pattern_h):
|
||||
for cell_index in range(image_sz - pattern_w):
|
||||
if all(img[row_index + dr][cell_index + dc] == '#' for dr, dc in deltas):
|
||||
appearances += 1
|
||||
|
||||
if appearances != 0:
|
||||
return appearances
|
||||
|
||||
def part1(entries: dict) -> int:
|
||||
"""part1 solver"""
|
||||
corners = get_tiles_corners(entries)
|
||||
corners_prod = 1
|
||||
for tile_id in corners:
|
||||
corners_prod *= tile_id
|
||||
return corners_prod
|
||||
|
||||
def part2(entries: dict) -> int:
|
||||
"""part2 solver"""
|
||||
corners = get_tiles_corners(entries)
|
||||
top_left_id, matching_sides = corners.popitem()
|
||||
top_left = entries[top_left_id]
|
||||
|
||||
if matching_sides in ('ne', 'en'):
|
||||
top_left = rotate90(top_left)
|
||||
elif matching_sides in ('nw', 'wn'):
|
||||
top_left = rotate90(rotate90(top_left))
|
||||
elif matching_sides in ('sw', 'ws'):
|
||||
top_left = rotate90(rotate90(rotate90(top_left)))
|
||||
|
||||
image_dimension = int(len(entries) ** 0.5)
|
||||
entries.pop(top_left_id)
|
||||
|
||||
image = build_image(top_left, entries, image_dimension)
|
||||
monster_cells = sum(row.count('#') for row in MONSTER_PATTERN)
|
||||
water_cells = sum(row.count('#') for row in image)
|
||||
n_monsters = count_pattern(image, MONSTER_PATTERN)
|
||||
|
||||
return water_cells - n_monsters * monster_cells
|
||||
|
||||
def test_input_day_20():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 20899048083289
|
||||
assert part2(entries) == 273
|
||||
|
||||
def test_bench_day_20(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %d" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
110
2020/solutions/day_21.py
Normal file
110
2020/solutions/day_21.py
Normal file
@@ -0,0 +1,110 @@
|
||||
"""AOC 2020 Day 21"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import collections
|
||||
|
||||
TEST_INPUT = """mxmxvkd kfcds sqjhc nhms (contains dairy, fish)
|
||||
trh fvjkl sbzzf mxmxvkd (contains dairy)
|
||||
sqjhc fvjkl (contains soy)
|
||||
sqjhc mxmxvkd sbzzf (contains fish)"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> tuple:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
recipes = list()
|
||||
ingredient_allergenes = collections.defaultdict(set)
|
||||
recipes_with_allergene = collections.defaultdict(list)
|
||||
|
||||
for index, recipe in enumerate(input_data.split('\n')):
|
||||
ingredients, allergenes = recipe.split(' (contains ')
|
||||
ingredients = set(ingredients.split())
|
||||
allergenes = set(allergenes.rstrip(')').split(', '))
|
||||
|
||||
recipes.append(ingredients)
|
||||
for ingredient in ingredients:
|
||||
ingredient_allergenes[ingredient] |= allergenes
|
||||
for allergene in allergenes:
|
||||
recipes_with_allergene[allergene].append(index)
|
||||
|
||||
return recipes, ingredient_allergenes, recipes_with_allergene
|
||||
|
||||
def find_safe_ingredients(recipes: list, ingredient_allergenes: dict, recipes_with_allergene: dict) -> list:
|
||||
"""return a list of ingredients not containing allergenes"""
|
||||
safe_ingredients = list()
|
||||
for ingredient, allergenes in ingredient_allergenes.items():
|
||||
impossible_allergenes = set()
|
||||
for allergene in allergenes:
|
||||
if any(ingredient not in recipes[i] for i in recipes_with_allergene[allergene]):
|
||||
impossible_allergenes.add(allergene)
|
||||
allergenes -= impossible_allergenes
|
||||
if not allergenes:
|
||||
safe_ingredients.append(ingredient)
|
||||
return safe_ingredients
|
||||
|
||||
def assign_allergenes(ingredient_allergenes: dict) -> dict:
|
||||
"""return a dict with each ingredient and its allergene"""
|
||||
assigned_allergenes = dict()
|
||||
while ingredient_allergenes:
|
||||
assigned_allergene = str()
|
||||
assigned_ingredient = str()
|
||||
|
||||
for ingredient, allergenes in ingredient_allergenes.items():
|
||||
if len(allergenes) == 1:
|
||||
assigned_allergene = allergenes.pop()
|
||||
assigned_ingredient = ingredient
|
||||
break
|
||||
assigned_allergenes[assigned_allergene] = assigned_ingredient
|
||||
ingredient_allergenes.pop(assigned_ingredient)
|
||||
|
||||
for ingredient, allergenes in ingredient_allergenes.items():
|
||||
if assigned_allergene in allergenes:
|
||||
allergenes.remove(assigned_allergene)
|
||||
|
||||
return assigned_allergenes
|
||||
|
||||
def part1(entries: tuple) -> int:
|
||||
"""part1 solver"""
|
||||
recipes, ingredient_allergenes, recipes_with_allergene = entries
|
||||
safe_ingredients = find_safe_ingredients(recipes, ingredient_allergenes, recipes_with_allergene)
|
||||
|
||||
return sum(ingredient in recipe for recipe in recipes for ingredient in safe_ingredients)
|
||||
|
||||
def part2(entries: tuple) -> str:
|
||||
"""part2 solver"""
|
||||
recipes, ingredient_allergenes, recipes_with_allergene = entries
|
||||
safe_ingredients = find_safe_ingredients(recipes, ingredient_allergenes, recipes_with_allergene)
|
||||
for ingredient in safe_ingredients:
|
||||
ingredient_allergenes.pop(ingredient)
|
||||
assigned_allergenes = assign_allergenes(ingredient_allergenes)
|
||||
|
||||
return ','.join(map(assigned_allergenes.get, sorted(assigned_allergenes)))
|
||||
|
||||
def test_input_day_21():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 5
|
||||
assert part2(entries) == 'mxmxvkd,sqjhc,fvjkl'
|
||||
|
||||
def test_bench_day_21(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %s" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
110
2020/solutions/day_22.py
Normal file
110
2020/solutions/day_22.py
Normal file
@@ -0,0 +1,110 @@
|
||||
"""AOC 2020 Day 22"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import collections
|
||||
import itertools
|
||||
|
||||
TEST_INPUT = """Player 1:
|
||||
9
|
||||
2
|
||||
6
|
||||
3
|
||||
1
|
||||
|
||||
Player 2:
|
||||
5
|
||||
8
|
||||
4
|
||||
7
|
||||
10"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> tuple:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
deck1, deck2 = input_data.split('\n\n')
|
||||
deck1, deck2 = deck1.splitlines(), deck2.splitlines()
|
||||
deck1 = collections.deque(map(int, deck1[1:]))
|
||||
deck2 = collections.deque(map(int, deck2[1:]))
|
||||
|
||||
return deck1, deck2
|
||||
|
||||
def play_space_cards(deck1: collections.deque, deck2: collections.deque) -> collections.deque:
|
||||
"""return the winner's deck after a space cards game"""
|
||||
assert len(deck1) == len(deck2)
|
||||
while deck1 and deck2:
|
||||
card1, card2 = deck1.popleft(), deck2.popleft()
|
||||
assert card1 != card2
|
||||
if card1 > card2:
|
||||
deck1.extend((card1, card2))
|
||||
else:
|
||||
deck2.extend((card2, card1))
|
||||
|
||||
return deck1 if deck1 else deck2
|
||||
|
||||
def play_recursive_space_cards(deck1: collections.deque, deck2: collections.deque) -> tuple:
|
||||
"""return the winner and its deck after a recursive space cards game"""
|
||||
configurations = set()
|
||||
|
||||
while deck1 and deck2:
|
||||
current_config = (tuple(deck1), tuple(deck2))
|
||||
if current_config in configurations:
|
||||
return 1, deck1
|
||||
configurations.add(current_config)
|
||||
|
||||
card1, card2 = deck1.popleft(), deck2.popleft()
|
||||
assert card1 != card2
|
||||
if card1 <= len(deck1) and card2 <= len(deck2):
|
||||
sub_deck1 = collections.deque(itertools.islice(deck1, card1))
|
||||
sub_deck2 = collections.deque(itertools.islice(deck2, card2))
|
||||
winner, _ = play_recursive_space_cards(sub_deck1, sub_deck2)
|
||||
else:
|
||||
winner = 1 if card1 > card2 else 2
|
||||
|
||||
if winner == 1:
|
||||
deck1.extend((card1, card2))
|
||||
else:
|
||||
deck2.extend((card2, card1))
|
||||
|
||||
return (1, deck1) if deck1 else (2, deck2)
|
||||
|
||||
def part1(entries: tuple) -> int:
|
||||
"""part1 solver"""
|
||||
deck1, deck2 = entries[0].copy(), entries[1].copy()
|
||||
winner = play_space_cards(deck1, deck2)
|
||||
return sum(index * card for index, card in enumerate(reversed(winner), 1))
|
||||
|
||||
def part2(entries: tuple) -> str:
|
||||
"""part2 solver"""
|
||||
deck1, deck2 = entries
|
||||
_, winner = play_recursive_space_cards(deck1, deck2)
|
||||
return sum(index * card for index, card in enumerate(reversed(winner), 1))
|
||||
|
||||
def test_input_day_22():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 306
|
||||
assert part2(entries) == 291
|
||||
|
||||
def test_bench_day_22(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %d" % part1(entries))
|
||||
print("Part 2: %s" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
101
2020/solutions/day_23.py
Normal file
101
2020/solutions/day_23.py
Normal file
@@ -0,0 +1,101 @@
|
||||
"""AOC 2020 Day 23"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """389125467"""
|
||||
|
||||
class Cup:
|
||||
"""a cup with a value and a pointer to the next cup"""
|
||||
def __init__(self, value):
|
||||
self.value = value
|
||||
self.next = None
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> list:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
return list(map(int, input_data))
|
||||
|
||||
def build_list(values: list, n_cups: int = None) -> tuple:
|
||||
"""return the value of the first cup and a dict of Cup"""
|
||||
if n_cups is None:
|
||||
n_cups = len(values)
|
||||
cups_list = [None]*(n_cups+1)
|
||||
for i in range(1, n_cups+1):
|
||||
cups_list[i] = Cup(i)
|
||||
|
||||
for i, _ in enumerate(values):
|
||||
cups_list[values[i]].next = cups_list[values[(i+1)%len(values)]]
|
||||
|
||||
return values[0], cups_list
|
||||
|
||||
def play_crab_cups(first_cup: int, cups: list, moves: int):
|
||||
"""play n moves of crab cups"""
|
||||
current = cups[first_cup]
|
||||
max_cup = len(cups) - 1
|
||||
for _ in range(moves):
|
||||
next_cup = current.next
|
||||
picked = (next_cup.value, next_cup.next.value, next_cup.next.next.value)
|
||||
current.next = current.next.next.next.next
|
||||
label = current.value
|
||||
|
||||
while label in picked or label == current.value:
|
||||
if label != 1:
|
||||
label = label-1
|
||||
else:
|
||||
label = max_cup
|
||||
|
||||
destination = cups[label]
|
||||
next_cup.next.next.next = destination.next
|
||||
destination.next = next_cup
|
||||
current = current.next
|
||||
|
||||
def part1(entries: list) -> str:
|
||||
"""part1 solver"""
|
||||
first_cup, cups = build_list(entries)
|
||||
play_crab_cups(first_cup, cups, 100)
|
||||
|
||||
cur_cup = cups[1]
|
||||
cups_str = ''
|
||||
for _ in range(8):
|
||||
cur_cup = cur_cup.next
|
||||
cups_str += str(cur_cup.value)
|
||||
|
||||
return cups_str
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver"""
|
||||
entries.extend(range(10, 1000001))
|
||||
first_cup, cups = build_list(entries)
|
||||
play_crab_cups(first_cup, cups, 10000000)
|
||||
|
||||
return cups[1].next.value * cups[1].next.next.value
|
||||
|
||||
def test_input_day_23():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == '67384529'
|
||||
assert part2(entries) == 149245887792
|
||||
|
||||
def test_bench_day_23(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %s" % part1(entries))
|
||||
print("Part 2: %s" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
144
2020/solutions/day_24.py
Normal file
144
2020/solutions/day_24.py
Normal file
@@ -0,0 +1,144 @@
|
||||
"""AOC 2020 Day 24"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
import re
|
||||
import itertools
|
||||
|
||||
TEST_INPUT = """sesenwnenenewseeswwswswwnenewsewsw
|
||||
neeenesenwnwwswnenewnwwsewnenwseswesw
|
||||
seswneswswsenwwnwse
|
||||
nwnwneseeswswnenewneswwnewseswneseene
|
||||
swweswneswnenwsewnwneneseenw
|
||||
eesenwseswswnenwswnwnwsewwnwsene
|
||||
sewnenenenesenwsewnenwwwse
|
||||
wenwwweseeeweswwwnwwe
|
||||
wsweesenenewnwwnwsenewsenwwsesesenwne
|
||||
neeswseenwwswnwswswnw
|
||||
nenwswwsewswnenenewsenwsenwnesesenew
|
||||
enewnwewneswsewnwswenweswnenwsenwsw
|
||||
sweneswneswneneenwnewenewwneswswnese
|
||||
swwesenesewenwneswnwwneseswwne
|
||||
enesenwswwswneneswsenwnewswseenwsese
|
||||
wnwnesenesenenwwnenwsewesewsesesew
|
||||
nenewswnwewswnenesenwnesewesw
|
||||
eneswnwswnwsenenwnwnwwseeswneewsenese
|
||||
neswnwewnwnwseenwseesewsenwsweewe
|
||||
wseweeenwnesenwwwswnew"""
|
||||
|
||||
STEPMAP = {
|
||||
'e': (1, 0),
|
||||
'se': (1, 1),
|
||||
'sw': (0, 1),
|
||||
'w': (-1, 0),
|
||||
'nw': (-1, -1),
|
||||
'ne': (0, -1)
|
||||
}
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> set:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
rexp_steps = re.compile(r'e|se|sw|w|nw|ne')
|
||||
tiles_steps = [rexp_steps.findall(line) for line in input_data.split('\n')]
|
||||
|
||||
black_tiles = set()
|
||||
|
||||
for steps in tiles_steps:
|
||||
dst_tile = find_dst_tile(steps)
|
||||
if dst_tile in black_tiles:
|
||||
black_tiles.remove(dst_tile)
|
||||
else:
|
||||
black_tiles.add(dst_tile)
|
||||
|
||||
return black_tiles
|
||||
|
||||
def find_dst_tile(steps: list) -> tuple:
|
||||
"""calculate the destination tile based on the steps"""
|
||||
x_dst, y_dst = 0, 0
|
||||
for step in steps:
|
||||
d_x, d_y = STEPMAP[step]
|
||||
x_dst += d_x
|
||||
y_dst += d_y
|
||||
|
||||
return x_dst, y_dst
|
||||
|
||||
def count_black_neighbors(tiles: set, x_tile: int, y_tile: int) -> int:
|
||||
"""return the number of black adjacent tile of a given one"""
|
||||
black_neighbors = 0
|
||||
for d_x, d_y in STEPMAP.values():
|
||||
if (x_tile+d_x, y_tile+d_y) in tiles:
|
||||
black_neighbors += 1
|
||||
return black_neighbors
|
||||
|
||||
def calculate_floor_bounds(tiles: set) -> tuple:
|
||||
"""return the floor boundaries"""
|
||||
min_x = float('Inf')
|
||||
max_x = float('-Inf')
|
||||
min_y = float('Inf')
|
||||
max_y = float('-Inf')
|
||||
|
||||
for x_tile, y_tile in tiles:
|
||||
if x_tile < min_x:
|
||||
min_x = x_tile
|
||||
elif x_tile > max_x:
|
||||
max_x = x_tile
|
||||
if y_tile < min_y:
|
||||
min_y = y_tile
|
||||
elif y_tile > max_y:
|
||||
max_y = y_tile
|
||||
|
||||
return range(min_x-1, max_x+2), range(min_y-1, max_y+2)
|
||||
|
||||
def flip_tiles(tiles: set) -> set:
|
||||
"""calculate the new daily floor"""
|
||||
new_floor = set()
|
||||
|
||||
for tile in itertools.product(*calculate_floor_bounds(tiles)):
|
||||
black_neighbors = count_black_neighbors(tiles, *tile)
|
||||
|
||||
if tile in tiles and not (black_neighbors == 0 or black_neighbors > 2):
|
||||
new_floor.add(tile)
|
||||
elif tile not in tiles and black_neighbors == 2:
|
||||
new_floor.add(tile)
|
||||
|
||||
return new_floor
|
||||
|
||||
def part1(entries: set) -> int:
|
||||
"""part1 solver"""
|
||||
return len(entries)
|
||||
|
||||
def part2(entries: list) -> int:
|
||||
"""part2 solver"""
|
||||
for _ in range(100):
|
||||
entries = flip_tiles(entries)
|
||||
|
||||
return len(entries)
|
||||
|
||||
def test_input_day_24():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 10
|
||||
assert part2(entries) == 2208
|
||||
|
||||
def test_bench_day_24(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %s" % part1(entries))
|
||||
print("Part 2: %s" % part2(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
52
2020/solutions/day_25.py
Normal file
52
2020/solutions/day_25.py
Normal file
@@ -0,0 +1,52 @@
|
||||
"""AOC 2020 Day 25"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
TEST_INPUT = """5764801
|
||||
17807724"""
|
||||
|
||||
def read_input(input_path: str) -> str:
|
||||
"""take input file path and return a str with the file's content"""
|
||||
with open(input_path, 'r') as input_file:
|
||||
input_data = input_file.read().strip()
|
||||
return input_data
|
||||
|
||||
def extract(input_data: str) -> tuple:
|
||||
"""take input data and return the appropriate data structure"""
|
||||
return tuple(map(int, input_data.splitlines()))
|
||||
|
||||
def part1(entries: tuple) -> int:
|
||||
"""part1 solver"""
|
||||
card_key, door_key = entries
|
||||
loop_size = 0
|
||||
key = 1
|
||||
while key not in (card_key, door_key):
|
||||
loop_size += 1
|
||||
key = (key * 7) % 20201227
|
||||
|
||||
if key == card_key:
|
||||
return pow(door_key, loop_size, 20201227)
|
||||
return pow(card_key, loop_size, 20201227)
|
||||
|
||||
def test_input_day_25():
|
||||
"""pytest testing function"""
|
||||
entries = extract(TEST_INPUT)
|
||||
assert part1(entries) == 14897079
|
||||
|
||||
def test_bench_day_25(benchmark):
|
||||
"""pytest-benchmark function"""
|
||||
benchmark(main)
|
||||
|
||||
def main():
|
||||
"""main function"""
|
||||
input_path = str(pathlib.Path(__file__).resolve().parent.parent) + "/inputs/" + str(pathlib.Path(__file__).stem)
|
||||
start_time = time.time()
|
||||
input_data = read_input(input_path)
|
||||
entries = extract(input_data)
|
||||
print("Part 1: %s" % part1(entries))
|
||||
end_time = time.time()
|
||||
print("Execution time: %f" % (end_time-start_time))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user