Initial commit - should have done this on day 1...
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.vs
|
||||||
|
bin
|
||||||
|
obj
|
200
01input.txt
Normal file
200
01input.txt
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
1895
|
||||||
|
1504
|
||||||
|
1660
|
||||||
|
1775
|
||||||
|
1743
|
||||||
|
1607
|
||||||
|
1267
|
||||||
|
1133
|
||||||
|
292
|
||||||
|
1646
|
||||||
|
1285
|
||||||
|
1808
|
||||||
|
1512
|
||||||
|
1839
|
||||||
|
1869
|
||||||
|
1578
|
||||||
|
1318
|
||||||
|
1385
|
||||||
|
1829
|
||||||
|
1800
|
||||||
|
1491
|
||||||
|
1600
|
||||||
|
1290
|
||||||
|
1856
|
||||||
|
1781
|
||||||
|
1881
|
||||||
|
1953
|
||||||
|
2008
|
||||||
|
1681
|
||||||
|
1472
|
||||||
|
1846
|
||||||
|
2010
|
||||||
|
1619
|
||||||
|
1584
|
||||||
|
1849
|
||||||
|
1876
|
||||||
|
1744
|
||||||
|
1980
|
||||||
|
1421
|
||||||
|
911
|
||||||
|
1308
|
||||||
|
1762
|
||||||
|
1398
|
||||||
|
1470
|
||||||
|
1974
|
||||||
|
1902
|
||||||
|
1985
|
||||||
|
2001
|
||||||
|
1926
|
||||||
|
1374
|
||||||
|
1678
|
||||||
|
1523
|
||||||
|
1894
|
||||||
|
1597
|
||||||
|
1778
|
||||||
|
1940
|
||||||
|
1362
|
||||||
|
1613
|
||||||
|
1629
|
||||||
|
1473
|
||||||
|
1633
|
||||||
|
1867
|
||||||
|
1838
|
||||||
|
1931
|
||||||
|
1850
|
||||||
|
1776
|
||||||
|
1689
|
||||||
|
1311
|
||||||
|
1947
|
||||||
|
1988
|
||||||
|
1779
|
||||||
|
1381
|
||||||
|
1683
|
||||||
|
1677
|
||||||
|
1675
|
||||||
|
1587
|
||||||
|
767
|
||||||
|
1401
|
||||||
|
1412
|
||||||
|
1544
|
||||||
|
1484
|
||||||
|
618
|
||||||
|
1755
|
||||||
|
1073
|
||||||
|
1970
|
||||||
|
1735
|
||||||
|
1770
|
||||||
|
1623
|
||||||
|
1665
|
||||||
|
1783
|
||||||
|
1400
|
||||||
|
1892
|
||||||
|
1921
|
||||||
|
1506
|
||||||
|
1978
|
||||||
|
1731
|
||||||
|
1739
|
||||||
|
1515
|
||||||
|
1354
|
||||||
|
1264
|
||||||
|
1394
|
||||||
|
1763
|
||||||
|
1569
|
||||||
|
1453
|
||||||
|
1539
|
||||||
|
2006
|
||||||
|
1586
|
||||||
|
1855
|
||||||
|
1609
|
||||||
|
1729
|
||||||
|
1624
|
||||||
|
506
|
||||||
|
1668
|
||||||
|
1803
|
||||||
|
1486
|
||||||
|
1767
|
||||||
|
1720
|
||||||
|
1753
|
||||||
|
1994
|
||||||
|
1718
|
||||||
|
1922
|
||||||
|
1314
|
||||||
|
1250
|
||||||
|
1516
|
||||||
|
1546
|
||||||
|
1625
|
||||||
|
1708
|
||||||
|
1286
|
||||||
|
1993
|
||||||
|
1785
|
||||||
|
491
|
||||||
|
1705
|
||||||
|
1924
|
||||||
|
1752
|
||||||
|
1888
|
||||||
|
1651
|
||||||
|
1604
|
||||||
|
1750
|
||||||
|
1547
|
||||||
|
1481
|
||||||
|
1704
|
||||||
|
1851
|
||||||
|
904
|
||||||
|
1920
|
||||||
|
1939
|
||||||
|
1277
|
||||||
|
1870
|
||||||
|
1934
|
||||||
|
1617
|
||||||
|
1833
|
||||||
|
1797
|
||||||
|
1817
|
||||||
|
1967
|
||||||
|
1935
|
||||||
|
1914
|
||||||
|
1621
|
||||||
|
1468
|
||||||
|
1859
|
||||||
|
1552
|
||||||
|
1640
|
||||||
|
1709
|
||||||
|
1121
|
||||||
|
1973
|
||||||
|
1343
|
||||||
|
1266
|
||||||
|
1806
|
||||||
|
1360
|
||||||
|
1299
|
||||||
|
1990
|
||||||
|
1356
|
||||||
|
1631
|
||||||
|
1555
|
||||||
|
1811
|
||||||
|
1323
|
||||||
|
1794
|
||||||
|
1550
|
||||||
|
1448
|
||||||
|
1848
|
||||||
|
1826
|
||||||
|
1723
|
||||||
|
1891
|
||||||
|
1302
|
||||||
|
1655
|
||||||
|
947
|
||||||
|
1580
|
||||||
|
1908
|
||||||
|
1641
|
||||||
|
1816
|
||||||
|
1701
|
||||||
|
1871
|
||||||
|
1588
|
||||||
|
1843
|
||||||
|
1643
|
||||||
|
1893
|
||||||
|
1866
|
||||||
|
1628
|
||||||
|
1417
|
||||||
|
1795
|
||||||
|
1995
|
||||||
|
1937
|
1000
02input.txt
Normal file
1000
02input.txt
Normal file
File diff suppressed because it is too large
Load Diff
323
03input.txt
Normal file
323
03input.txt
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
.#....#..##.#..####....#.......
|
||||||
|
......#..#....#....###......#.#
|
||||||
|
#..#.....#..............##.#.#.
|
||||||
|
#.#...#....#...#......##..#..#.
|
||||||
|
...#..#.##..#..#........###.#.#
|
||||||
|
...#.#..........#.........##...
|
||||||
|
...#.#....#.#....#..#......#...
|
||||||
|
..##.#.....#.......#.###..#..##
|
||||||
|
..#.......#.......#....##......
|
||||||
|
....##........##.##...#.###.##.
|
||||||
|
#.......#.......##..#......#...
|
||||||
|
..##.............##.#......#...
|
||||||
|
...#.####....#.....#...##......
|
||||||
|
.............##.#......#.......
|
||||||
|
..#...#....#......#....#.......
|
||||||
|
..#....#..#............#.......
|
||||||
|
##...#..#........##..#......#..
|
||||||
|
##........##........#.#.......#
|
||||||
|
#.......#........#.#..#....###.
|
||||||
|
.....#..#.#..........##...#....
|
||||||
|
..##...#......#.#...#..#...#...
|
||||||
|
##.##...#......#....#....#...#.
|
||||||
|
#.......#..#.#..#....#..###.#.#
|
||||||
|
#.............#.#....#..#.#....
|
||||||
|
...#.......###.#.##.##.#...#..#
|
||||||
|
.##.......##..##...#..###......
|
||||||
|
.......#.#.#.#..####..#..#..#..
|
||||||
|
...##......#.#.##.###....#.###.
|
||||||
|
###......###......#.#####..#...
|
||||||
|
..#........##..#..##.##..#...#.
|
||||||
|
.....##..#...#..#.##.....#.#...
|
||||||
|
#......#.##....#..##.#....#.#..
|
||||||
|
##.#.##..#................#....
|
||||||
|
......#.#....#......##.....#...
|
||||||
|
..#...##..#..#...#..#.#..#.....
|
||||||
|
........#.#.#.##...#.#.....#.#.
|
||||||
|
#.#......#.....##..#...#.......
|
||||||
|
..#.#......#...........###.....
|
||||||
|
......##....#....##..#..#.#.#.#
|
||||||
|
##....#.###...#......#..#...#..
|
||||||
|
#.#.##....###...####.......#..#
|
||||||
|
##...........#.....#........#.#
|
||||||
|
.##.#..#.....#......#.......#..
|
||||||
|
##..##..###....#.........##....
|
||||||
|
..#..#..#.##...#.#...#........#
|
||||||
|
#.##.###...#.......#...........
|
||||||
|
.........#.................#...
|
||||||
|
#.##...#.....#..##........#....
|
||||||
|
....#.#...##...#...........#...
|
||||||
|
.#.....#.#..#...##..##.....#...
|
||||||
|
.#.....####....#..##..#........
|
||||||
|
...#..#......##.#..##.#.#.#..#.
|
||||||
|
.##.#.....#.....#...#.......##.
|
||||||
|
......#..#..#......#...####....
|
||||||
|
.......#......##..#..##.....#..
|
||||||
|
......#.#..#...#..#.#..........
|
||||||
|
....##.........#...............
|
||||||
|
.#....#..##.....#....##.##.....
|
||||||
|
#.#.....#...#....####....#.#...
|
||||||
|
#.....#....#.#...#.............
|
||||||
|
...#..#.....#....##..#..#......
|
||||||
|
...#.#............#...........#
|
||||||
|
###.#..#.#......#.....##.....#.
|
||||||
|
####....#....###.....#..#.#####
|
||||||
|
.###..#...#.#..#......##.#.#.#.
|
||||||
|
.....#.##.#....#..##....#..#..#
|
||||||
|
...#....#...##.....#......#.#..
|
||||||
|
....#...#....#...#....#.....#.#
|
||||||
|
.#.....#.....#.#..#......#..#..
|
||||||
|
..#..##....##.##....#.....##...
|
||||||
|
#..##...#.##...#..#.#.#.....#..
|
||||||
|
...#..##.#..#....#.#....######.
|
||||||
|
..........#..#.....#....#...##.
|
||||||
|
#.#####.#.###..#.....#.........
|
||||||
|
#....#......#..#.#.##.##..###..
|
||||||
|
..#...###.#.#....##.##...##....
|
||||||
|
.......#....#..#...##......#...
|
||||||
|
...#.#...#..#.....#..##.#......
|
||||||
|
###..##...........#............
|
||||||
|
..#....#.##....#.#..##...#.....
|
||||||
|
##....#...#....#.....#.#..##...
|
||||||
|
..............#.##.#..#..##.###
|
||||||
|
......#..#..#..#.#....###...##.
|
||||||
|
.#...#..#.#.#....#..........#..
|
||||||
|
..#.#.....#..#...........#.##..
|
||||||
|
...#.#......#......#..#..#.#...
|
||||||
|
...#....#.#.#.....#...#.##..#..
|
||||||
|
.#.#..#...#........##.......#..
|
||||||
|
##..........#..#...#....###.#..
|
||||||
|
#.....###......#..#.#.#....#.#.
|
||||||
|
..###.......#.#...............#
|
||||||
|
#....#.....#.#......#..##.##...
|
||||||
|
#.##.#.#....#..#.#...#.#...#..#
|
||||||
|
#....#..#...........#.......#..
|
||||||
|
...#.####.....#.........###.##.
|
||||||
|
......#..#.....#..........#..#.
|
||||||
|
#...#.#..####...#...#.#.##...##
|
||||||
|
.##.........#......#.#.#.......
|
||||||
|
.......##...##.##....###...##..
|
||||||
|
...#..#....#..#.#.#.....#.#....
|
||||||
|
#....#.#.#.......##..###..##...
|
||||||
|
......#............#.#...#..#..
|
||||||
|
#.#.....#......#...#.......###.
|
||||||
|
...#.#................#...#....
|
||||||
|
.....#......#.#..#...##.#.#...#
|
||||||
|
#....#.#..#..#..##..#.##..#....
|
||||||
|
#.................#..#....#....
|
||||||
|
..#....#.......####....###.....
|
||||||
|
.#..#.#.#...###..#...#..###....
|
||||||
|
..#..#.#......#.###..........#.
|
||||||
|
.....#......#.......##....##.#.
|
||||||
|
.#....#........#.#.##.#........
|
||||||
|
#.#..##..#..#.#...####....##...
|
||||||
|
...#....#.#..#...#..........#..
|
||||||
|
.#.....#.##....#...##..........
|
||||||
|
....##....#.....#.....#...#.###
|
||||||
|
.#...##.#.#..##..#...#.#..#..#.
|
||||||
|
..#.......#.##.....#.#........#
|
||||||
|
...#...#.....##..#.#.#....#....
|
||||||
|
...#.....#.......##.........#.#
|
||||||
|
.##.....#..#.#...#.#...#.#...#.
|
||||||
|
...........#...#.###..#...#..#.
|
||||||
|
#.##........#..###.##...####...
|
||||||
|
.#.....#.#...##...#..#..#...##.
|
||||||
|
..#....#..#...#.....#.....##...
|
||||||
|
..###..#.#.....##........#.##..
|
||||||
|
.#.#..##........#.##....#..#.##
|
||||||
|
.####.#..##..#.#..#....##....#.
|
||||||
|
.##....##...#.#........#.......
|
||||||
|
....#..#..#...#..#..#..#.#.....
|
||||||
|
...#......................#....
|
||||||
|
#.....#.#....#..#..#.#..#....#.
|
||||||
|
##.....#.....##..........###...
|
||||||
|
.#..#..............#...##.#.#.#
|
||||||
|
...#...#.#.............#.#..#.#
|
||||||
|
..#.....#.......#......#.#.....
|
||||||
|
.###.#..#..#..#.#..#.....#.....
|
||||||
|
.....##..##...##.......#....###
|
||||||
|
.#........###...##..#....##....
|
||||||
|
#....#.#......##..#....#.##..#.
|
||||||
|
#....#.#...#........##...###...
|
||||||
|
.#.....#...#.###....#.##.#.####
|
||||||
|
###......#....#...#....##..#..#
|
||||||
|
##....#..###......#...#.#.#....
|
||||||
|
..........#......##.#..#.......
|
||||||
|
.#..#......###.........##...#..
|
||||||
|
....#......#....#.........#.#.#
|
||||||
|
##.#.#...#.#...#...#..#......#.
|
||||||
|
....#.##.........#..#.....##.#.
|
||||||
|
........#...#..#.#.#.#.....##..
|
||||||
|
..#......#.#.#..#.....##.......
|
||||||
|
..............#....#....##.#..#
|
||||||
|
....#.#.....#....#.#.###.#....#
|
||||||
|
..#..........#..#......#.##..#.
|
||||||
|
...#...#.#.............#..#....
|
||||||
|
#.......#..#..##.........##..#.
|
||||||
|
..##..#............#.....#.....
|
||||||
|
....#.#..##...#.#..#.........#.
|
||||||
|
........#.......#.##....#....#.
|
||||||
|
...#.....#.#.....#.#....#......
|
||||||
|
..#......##.#.............#.#.#
|
||||||
|
#.#.............#.#.....#......
|
||||||
|
.##....##.#.....#....#...##....
|
||||||
|
.#.#....##....#.....##.........
|
||||||
|
...#.....#.....#.....#..#.###..
|
||||||
|
.......#....#...##.#...#...#..#
|
||||||
|
..#.#.......#...###.#...#....#.
|
||||||
|
.....###..##....###.#.##.......
|
||||||
|
....#..................##.#.##.
|
||||||
|
.#.......###.##...#.#.....#....
|
||||||
|
....#....##...##.....#.#...#..#
|
||||||
|
#..#.....#......##...#....#....
|
||||||
|
#..##.........#.....#...#......
|
||||||
|
...#..##.......##......#..#####
|
||||||
|
.#..###.###.#.##........#......
|
||||||
|
.#...#....#....#.#....#...##...
|
||||||
|
##........#....#.........##..#.
|
||||||
|
.#.....##............#.#.......
|
||||||
|
....#....#...........###.....##
|
||||||
|
.#......#.#.#..#....#.#.....##.
|
||||||
|
......#.##.#..##....#.#.#..#...
|
||||||
|
#....#......#...#..####........
|
||||||
|
......#..#..##..#.......#.#..#.
|
||||||
|
##....##.###.#...#.##.#..#.###.
|
||||||
|
.#.........#...##...#.#......#.
|
||||||
|
..#.#...........####.#....##.##
|
||||||
|
.....#.#..##.#...###...#..#.#..
|
||||||
|
...#..#..##.#...#.....#.##...##
|
||||||
|
..##......##..........#..###...
|
||||||
|
.#......##.....#.##....#.#.##.#
|
||||||
|
...#.......##..##.....#....#...
|
||||||
|
.##...#...#....#..#............
|
||||||
|
#..#....#...........#..........
|
||||||
|
......#...#.#.......#...#.##..#
|
||||||
|
..#.###..#.....#.....#..#.....#
|
||||||
|
....#....#..........##....#..#.
|
||||||
|
.......##.#.#.#......#....#...#
|
||||||
|
####..#.###........#..#......#.
|
||||||
|
#........##.#.#.#.............#
|
||||||
|
.#......#......#..#.##.....#...
|
||||||
|
.....##.##......##.#.....#.#.#.
|
||||||
|
.......##.#.....##.......#.#.#.
|
||||||
|
.#.#..#.#..#.##...#.#....#.#..#
|
||||||
|
.#..##....#..#...##.......#..#.
|
||||||
|
.#.#..#.......#................
|
||||||
|
#........#.#.#......#.#.#.#....
|
||||||
|
##......#...#..##.#...##.##....
|
||||||
|
##.#..#...........##...#..###..
|
||||||
|
......#.####...#........#.#.#..
|
||||||
|
...#........##..###.#.#...#...#
|
||||||
|
.#.....##..#......##......###..
|
||||||
|
..#.#...#......#..#..##.#.....#
|
||||||
|
#....#..#.#..........#...#.....
|
||||||
|
.#......#.##..###..#.#....#..##
|
||||||
|
.......#.......#..#..#......#..
|
||||||
|
..##.....##.#..#..#.....##.....
|
||||||
|
........#.##...#.#.#..#..#..#..
|
||||||
|
...#.######.........#.....#..##
|
||||||
|
.#.#............#....#.........
|
||||||
|
#...#....###.#......#.#........
|
||||||
|
#.........#....#...##..........
|
||||||
|
....#...........#.###.#...###..
|
||||||
|
.........#........#.#.#..#...#.
|
||||||
|
.#.......#.#.....#.#.....#.##..
|
||||||
|
.....#.......#.....#.#.#.......
|
||||||
|
#.##..#..##.......#...#......#.
|
||||||
|
.###.....##...##.#...##.##.#.#.
|
||||||
|
...#......##..##............#.#
|
||||||
|
...#......................#..##
|
||||||
|
#..#..#................#...#...
|
||||||
|
#..#....#.#.#...##.......#..#..
|
||||||
|
....#.#..###.##...#..#.###..#..
|
||||||
|
..#...#....####.#............#.
|
||||||
|
......#....#.#...#.#.#.........
|
||||||
|
#...#........#.....##..###.#..#
|
||||||
|
#....#...#...##...#..#....##...
|
||||||
|
#..#...#..#.......#.#..##.#..#.
|
||||||
|
#.#..........#...........##....
|
||||||
|
.#...###...#......#.......#.#.#
|
||||||
|
.........#.........#...#...##..
|
||||||
|
##.#..###......##..#.....#..#..
|
||||||
|
....##...............#.....#...
|
||||||
|
.....#.....###.#.....#.#.......
|
||||||
|
....#..#......###..#..##..#....
|
||||||
|
......................#.....#..
|
||||||
|
..#..#...##....##....#........#
|
||||||
|
..#....#...#...#.......#.....#.
|
||||||
|
...##.#.#.##......#.#.#.#.####.
|
||||||
|
.###...#..#......#.#..#........
|
||||||
|
#..#...##.#..#..##..##....#...#
|
||||||
|
...#...#..#..#..#........#..##.
|
||||||
|
.##....#.##.#....#...#.#.#....#
|
||||||
|
#..#....#..#....#.......##..#.#
|
||||||
|
...#.#....####...........#...#.
|
||||||
|
#...#####...#.#..#......#...#.#
|
||||||
|
.##....#.#.#..#......#..##.....
|
||||||
|
..........#..#.#.#.....##......
|
||||||
|
.....#....#..................#.
|
||||||
|
.........#...#...#....#..###...
|
||||||
|
.#.#.#....#....................
|
||||||
|
......##............##.###..#..
|
||||||
|
#.#...#........####.##..#.#.##.
|
||||||
|
#........#.#.#.#..#.##.....#...
|
||||||
|
......####..#.##.......#....#..
|
||||||
|
.........#...#...#.....#.......
|
||||||
|
..##.....#...#...#.....##.....#
|
||||||
|
....#...##....#.....#..#..##.##
|
||||||
|
..#.........##...##..###..#....
|
||||||
|
#....#.#.........##.###.#...##.
|
||||||
|
.##...#....#..#..#.#....##.....
|
||||||
|
##..#..#..#...........#.##....#
|
||||||
|
....#..........#...#..#.....#..
|
||||||
|
........###..#..#.#.#.....##...
|
||||||
|
#...#...#..###............###..
|
||||||
|
..#.....#.#.#..#..#.#..#......#
|
||||||
|
..#...##..#....#...#......#....
|
||||||
|
#....#........##.....#..##....#
|
||||||
|
#.....#.#.#..#.......##.#.#.##.
|
||||||
|
..##...#...#.....#..........#..
|
||||||
|
##.....#....#......#..........#
|
||||||
|
......#..#..........#.#..####..
|
||||||
|
......#...#............##...##.
|
||||||
|
..#.......##.......#...###.###.
|
||||||
|
.#..#.#.#...#..##.#......#.#...
|
||||||
|
.##.....##.#.#...#.##.........#
|
||||||
|
#.#.######...........#.#####.#.
|
||||||
|
........#.##...##....##.#.##.#.
|
||||||
|
....#......#.....#.....###...##
|
||||||
|
#..............#.#....#.#....#.
|
||||||
|
....#..###.#.........##.#.#....
|
||||||
|
..#.#.#..##....####..........#.
|
||||||
|
...#..#.......#................
|
||||||
|
...#....#..............#....#..
|
||||||
|
.....#...#...#....#.#.#..#...#.
|
||||||
|
......##.............###.##..##
|
||||||
|
.#...#.#..#......#..#.##.......
|
||||||
|
##.....#.....#.##...#....#.....
|
||||||
|
..#..#.#.#.#.#..........#..###.
|
||||||
|
##..........#........#....#.#..
|
||||||
|
.....#...#........#.#..###....#
|
||||||
|
.###.#........#.##......#.#...#
|
||||||
|
#...##....#....#....##.#.#.....
|
||||||
|
.....#.#............#..........
|
||||||
|
..#.##....................#....
|
||||||
|
.....#..#..#.#..#.##.......#...
|
||||||
|
.....###......#......##......##
|
||||||
|
#.....#.#.......##.......#...#.
|
||||||
|
.#.#...#......#..###...#.....#.
|
||||||
|
#.#..#...#..##.....#...#.#..#..
|
||||||
|
.....#.#..........#..#.........
|
||||||
|
.###..##..##.....#...#...#..##.
|
||||||
|
#...#.#....#.......##..#.......
|
||||||
|
###...#.#.#..#.......#......#..
|
||||||
|
....##........#..........##....
|
||||||
|
............#....#...........#.
|
||||||
|
#..#.#....##..#.#..#......##...
|
||||||
|
.###....##...#....##..........#
|
||||||
|
.###........#........###.....#.
|
||||||
|
...#...#.#......#...#....#.....
|
||||||
|
.###.......#.........#.........
|
||||||
|
....##.#......#...###......##.#
|
||||||
|
.###...#..##.....##.......#....
|
||||||
|
.#.#...#..#.##....#........#...
|
21
2020.csproj
Normal file
21
2020.csproj
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
<RootNamespace>_2020</RootNamespace>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="01input.txt">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="02input.txt">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="03input.txt">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
25
2020.sln
Normal file
25
2020.sln
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.30709.132
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "2020", "2020.csproj", "{08D96689-1ACE-4A53-B36D-047961E071D1}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{08D96689-1ACE-4A53-B36D-047961E071D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{08D96689-1ACE-4A53-B36D-047961E071D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{08D96689-1ACE-4A53-B36D-047961E071D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{08D96689-1ACE-4A53-B36D-047961E071D1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {2FF21EB1-B41F-4112-B502-EE08C806598C}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
12
Program.cs
Normal file
12
Program.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace _2020
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
static void Main(string[] args)
|
||||||
|
{
|
||||||
|
Q01.Go();
|
||||||
|
Q02.Go();
|
||||||
|
Q03.Go();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
67
Q01.cs
Normal file
67
Q01.cs
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace _2020
|
||||||
|
{
|
||||||
|
class Q01
|
||||||
|
{
|
||||||
|
public static void Go()
|
||||||
|
{
|
||||||
|
var list = GetList();
|
||||||
|
Part1(list);
|
||||||
|
Part2(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<int> GetList()
|
||||||
|
{
|
||||||
|
var numList = new List<int>();
|
||||||
|
|
||||||
|
using var fs = new FileStream("01input.txt", FileMode.Open);
|
||||||
|
using var sr = new StreamReader(fs);
|
||||||
|
string line;
|
||||||
|
while ((line = sr.ReadLine()) != null)
|
||||||
|
{
|
||||||
|
if (int.TryParse(line, out int num))
|
||||||
|
{
|
||||||
|
numList.Add(num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return numList;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Part1(List<int> numList)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < numList.Count; i++)
|
||||||
|
{
|
||||||
|
for (int j = i + 1; j < numList.Count; j++)
|
||||||
|
{
|
||||||
|
if (numList[i] + numList[j] == 2020)
|
||||||
|
{
|
||||||
|
Debug.WriteLine($"Q01Part1: idx {i} + idx {j} = 2020. mult = {numList[i] * numList[j]}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Part2(List<int> numList)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < numList.Count; i++)
|
||||||
|
{
|
||||||
|
for (int j = i + 1; j < numList.Count; j++)
|
||||||
|
{
|
||||||
|
for (int k = j + 1; k < numList.Count; k++)
|
||||||
|
{
|
||||||
|
if (numList[i] + numList[j] + numList[k] == 2020)
|
||||||
|
{
|
||||||
|
Debug.WriteLine($"Q01Part2: idx {i} + idx {j} + idx {k} = 2020. mult = {numList[i] * numList[j] * numList[k]}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
101
Q02.cs
Normal file
101
Q02.cs
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
|
namespace _2020
|
||||||
|
{
|
||||||
|
class Q02
|
||||||
|
{
|
||||||
|
public static void Go()
|
||||||
|
{
|
||||||
|
var list = GetList();
|
||||||
|
Part1(list);
|
||||||
|
Part2(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Q2Entry
|
||||||
|
{
|
||||||
|
public int first;
|
||||||
|
public int second;
|
||||||
|
public char ch;
|
||||||
|
public string pw;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<Q2Entry> GetList()
|
||||||
|
{
|
||||||
|
var list = new List<Q2Entry>();
|
||||||
|
|
||||||
|
using var fs = new FileStream("02input.txt", FileMode.Open);
|
||||||
|
using var sr = new StreamReader(fs);
|
||||||
|
string line;
|
||||||
|
var rule02 = new Regex("(?<min>[0-9]+)-(?<max>[0-9]+) (?<ch>[a-z]): (?<pw>.+)", RegexOptions.Compiled);
|
||||||
|
while ((line = sr.ReadLine()) != null)
|
||||||
|
{
|
||||||
|
var match = rule02.Match(line);
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
list.Add(new Q2Entry()
|
||||||
|
{
|
||||||
|
first = Convert.ToInt32(match.Groups["min"].Value),
|
||||||
|
second = Convert.ToInt32(match.Groups["max"].Value),
|
||||||
|
ch = match.Groups["ch"].Value[0],
|
||||||
|
pw = match.Groups["pw"].Value,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Part1(List<Q2Entry> list)
|
||||||
|
{
|
||||||
|
int numValid = 0;
|
||||||
|
|
||||||
|
foreach (var entry in list)
|
||||||
|
{
|
||||||
|
var numFound = 0;
|
||||||
|
foreach (var ch in entry.pw)
|
||||||
|
{
|
||||||
|
if (ch == entry.ch)
|
||||||
|
{
|
||||||
|
numFound++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (numFound >= entry.first && numFound <= entry.second)
|
||||||
|
{
|
||||||
|
numValid++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.WriteLine($"Q02Part1: numValid={numValid}");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Part2(List<Q2Entry> list)
|
||||||
|
{
|
||||||
|
int numValid = 0;
|
||||||
|
|
||||||
|
foreach (var entry in list)
|
||||||
|
{
|
||||||
|
var validConditions = 0;
|
||||||
|
if (entry.pw.Length >= entry.first && entry.pw[entry.first - 1] == entry.ch)
|
||||||
|
{
|
||||||
|
validConditions++;
|
||||||
|
}
|
||||||
|
if (entry.pw.Length >= entry.second && entry.pw[entry.second - 1] == entry.ch)
|
||||||
|
{
|
||||||
|
validConditions++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (validConditions == 1)
|
||||||
|
{
|
||||||
|
numValid++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Debug.WriteLine($"Q02Part2: numValid={numValid}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
85
Q03.cs
Normal file
85
Q03.cs
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace _2020
|
||||||
|
{
|
||||||
|
class Q03
|
||||||
|
{
|
||||||
|
static bool[,] List = null;
|
||||||
|
public static void Go()
|
||||||
|
{
|
||||||
|
List = GetList();
|
||||||
|
Part1();
|
||||||
|
Part2();
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool[,] GetList()
|
||||||
|
{
|
||||||
|
var list = new List<List<bool>>();
|
||||||
|
|
||||||
|
using var fs = new FileStream("03input.txt", FileMode.Open);
|
||||||
|
using var sr = new StreamReader(fs);
|
||||||
|
string line;
|
||||||
|
while ((line = sr.ReadLine()) != null)
|
||||||
|
{
|
||||||
|
list.Add(new List<bool>());
|
||||||
|
for (int i = 0; i < line.Length; i++)
|
||||||
|
{
|
||||||
|
list[list.Count - 1].Add(line[i] != '.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var retval = new bool[list.Count, list[0].Count];
|
||||||
|
for (int i = 0; i < list.Count; i++)
|
||||||
|
{
|
||||||
|
for (int j = 0; j < list[i].Count; j++)
|
||||||
|
{
|
||||||
|
retval[i, j] = list[i][j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int GetNumTrees(int AddRow, int AddCol)
|
||||||
|
{
|
||||||
|
var numRows = List.GetLength(0);
|
||||||
|
var numCols = List.GetLength(1);
|
||||||
|
|
||||||
|
var numTrees = 0;
|
||||||
|
for (int rowPos = 0, colPos = 0; rowPos < numRows; rowPos += AddRow, colPos += AddCol)
|
||||||
|
{
|
||||||
|
if (List[rowPos, colPos % numCols])
|
||||||
|
{
|
||||||
|
numTrees++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return numTrees;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Part1()
|
||||||
|
{
|
||||||
|
Debug.WriteLine($"Q03Part1: num trees hit = {GetNumTrees(1, 3)}");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Part2()
|
||||||
|
{
|
||||||
|
var treesPerSlope = new List<int>()
|
||||||
|
{
|
||||||
|
GetNumTrees(1, 1),
|
||||||
|
GetNumTrees(1, 3),
|
||||||
|
GetNumTrees(1, 5),
|
||||||
|
GetNumTrees(1, 7),
|
||||||
|
GetNumTrees(2, 1),
|
||||||
|
};
|
||||||
|
|
||||||
|
long multSum = 1;
|
||||||
|
foreach (var trees in treesPerSlope)
|
||||||
|
{
|
||||||
|
multSum *= trees;
|
||||||
|
}
|
||||||
|
Debug.WriteLine($"Q03Part2: num trees hit, multiplied = {multSum}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user