add old stuff
parent
a9c7c09d2b
commit
d54448ee44
@ -0,0 +1,200 @@
|
|||||||
|
1891
|
||||||
|
1975
|
||||||
|
1987
|
||||||
|
1923
|
||||||
|
1928
|
||||||
|
1993
|
||||||
|
1946
|
||||||
|
1947
|
||||||
|
2005
|
||||||
|
1897
|
||||||
|
1971
|
||||||
|
1929
|
||||||
|
1875
|
||||||
|
1945
|
||||||
|
1680
|
||||||
|
811
|
||||||
|
1901
|
||||||
|
1396
|
||||||
|
1942
|
||||||
|
1282
|
||||||
|
1941
|
||||||
|
1978
|
||||||
|
1884
|
||||||
|
1879
|
||||||
|
1230
|
||||||
|
2010
|
||||||
|
1881
|
||||||
|
1979
|
||||||
|
1996
|
||||||
|
1904
|
||||||
|
1934
|
||||||
|
1865
|
||||||
|
2003
|
||||||
|
2006
|
||||||
|
1966
|
||||||
|
1860
|
||||||
|
1259
|
||||||
|
1959
|
||||||
|
1931
|
||||||
|
1963
|
||||||
|
1878
|
||||||
|
1880
|
||||||
|
151
|
||||||
|
1925
|
||||||
|
1663
|
||||||
|
1908
|
||||||
|
1863
|
||||||
|
1391
|
||||||
|
1922
|
||||||
|
1968
|
||||||
|
1998
|
||||||
|
1084
|
||||||
|
1982
|
||||||
|
1960
|
||||||
|
1938
|
||||||
|
1876
|
||||||
|
1937
|
||||||
|
1882
|
||||||
|
1873
|
||||||
|
1926
|
||||||
|
1986
|
||||||
|
1416
|
||||||
|
1864
|
||||||
|
1862
|
||||||
|
1969
|
||||||
|
1913
|
||||||
|
532
|
||||||
|
1866
|
||||||
|
1242
|
||||||
|
1933
|
||||||
|
1903
|
||||||
|
965
|
||||||
|
1927
|
||||||
|
1890
|
||||||
|
1991
|
||||||
|
1388
|
||||||
|
1992
|
||||||
|
1902
|
||||||
|
1907
|
||||||
|
1964
|
||||||
|
1394
|
||||||
|
2009
|
||||||
|
1920
|
||||||
|
630
|
||||||
|
1932
|
||||||
|
1854
|
||||||
|
1951
|
||||||
|
1852
|
||||||
|
1983
|
||||||
|
1314
|
||||||
|
1855
|
||||||
|
1954
|
||||||
|
1921
|
||||||
|
1989
|
||||||
|
1871
|
||||||
|
1995
|
||||||
|
1885
|
||||||
|
1974
|
||||||
|
1915
|
||||||
|
1872
|
||||||
|
1251
|
||||||
|
1899
|
||||||
|
1985
|
||||||
|
1889
|
||||||
|
1935
|
||||||
|
1912
|
||||||
|
946
|
||||||
|
1965
|
||||||
|
1739
|
||||||
|
1973
|
||||||
|
1911
|
||||||
|
1910
|
||||||
|
1917
|
||||||
|
1918
|
||||||
|
1900
|
||||||
|
1886
|
||||||
|
1477
|
||||||
|
2000
|
||||||
|
1916
|
||||||
|
1077
|
||||||
|
2004
|
||||||
|
1456
|
||||||
|
1867
|
||||||
|
1970
|
||||||
|
1999
|
||||||
|
1919
|
||||||
|
1726
|
||||||
|
706
|
||||||
|
1930
|
||||||
|
1994
|
||||||
|
1988
|
||||||
|
1997
|
||||||
|
1870
|
||||||
|
1953
|
||||||
|
652
|
||||||
|
1893
|
||||||
|
1898
|
||||||
|
1883
|
||||||
|
1957
|
||||||
|
1972
|
||||||
|
1874
|
||||||
|
1977
|
||||||
|
1955
|
||||||
|
2001
|
||||||
|
1906
|
||||||
|
1389
|
||||||
|
1848
|
||||||
|
1940
|
||||||
|
1877
|
||||||
|
1962
|
||||||
|
1948
|
||||||
|
1887
|
||||||
|
1924
|
||||||
|
1403
|
||||||
|
1408
|
||||||
|
1861
|
||||||
|
1892
|
||||||
|
1990
|
||||||
|
1222
|
||||||
|
677
|
||||||
|
1392
|
||||||
|
1113
|
||||||
|
1085
|
||||||
|
1894
|
||||||
|
1106
|
||||||
|
1939
|
||||||
|
1961
|
||||||
|
1944
|
||||||
|
1952
|
||||||
|
1643
|
||||||
|
1404
|
||||||
|
1895
|
||||||
|
1958
|
||||||
|
1976
|
||||||
|
1206
|
||||||
|
1905
|
||||||
|
1076
|
||||||
|
1888
|
||||||
|
1896
|
||||||
|
1943
|
||||||
|
1950
|
||||||
|
2008
|
||||||
|
1967
|
||||||
|
164
|
||||||
|
1981
|
||||||
|
1868
|
||||||
|
1914
|
||||||
|
1909
|
||||||
|
1956
|
||||||
|
341
|
||||||
|
1379
|
||||||
|
2007
|
||||||
|
1563
|
||||||
|
1980
|
||||||
|
1072
|
||||||
|
1949
|
||||||
|
1250
|
||||||
|
1258
|
||||||
|
1092
|
||||||
|
2002
|
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from itertools import permutations
|
||||||
|
with open('input', 'r') as f:
|
||||||
|
content = list(map(int, (map(str.strip, f.readlines()))))
|
||||||
|
perms = permutations(content, 2)
|
||||||
|
|
||||||
|
for perm in perms:
|
||||||
|
perm_sum = perm[0] + perm[1]
|
||||||
|
if perm_sum == 2020:
|
||||||
|
print('{} * {} = {}'.format(perm[0], perm[1], perm[0]*perm[1]))
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
|
pattern = re.compile('(\d+)-(\d+)\s(\w):\s(\w+)')
|
||||||
|
with open('input', 'r') as f:
|
||||||
|
content = list(map(str.strip, f.readlines()))
|
||||||
|
|
||||||
|
valid_pws = 0
|
||||||
|
for entry in content:
|
||||||
|
mini, maxi, char, pw = re.match(pattern, entry).groups(1)
|
||||||
|
mini = int(mini)
|
||||||
|
maxi = int(maxi)
|
||||||
|
char_count = pw.count(char)
|
||||||
|
if mini <= char_count <= maxi:
|
||||||
|
valid_pws += 1
|
||||||
|
|
||||||
|
print(valid_pws)
|
||||||
|
|
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
|
pattern = re.compile('(\d+)-(\d+)\s(\w):\s(\w+)')
|
||||||
|
with open('input', 'r') as f:
|
||||||
|
content = list(map(str.strip, f.readlines()))
|
||||||
|
|
||||||
|
valid_pws = 0
|
||||||
|
for entry in content:
|
||||||
|
p1, p2, char, pw = re.match(pattern, entry).groups(1)
|
||||||
|
p1 = int(p1) - 1
|
||||||
|
p2 = int(p2) - 1
|
||||||
|
if pw[p1] == char and pw[p2] != char or pw[p1] != char and pw[p2] == char:
|
||||||
|
valid_pws += 1
|
||||||
|
|
||||||
|
|
||||||
|
print(valid_pws)
|
||||||
|
|
@ -0,0 +1,323 @@
|
|||||||
|
....#...##.#.........#....#....
|
||||||
|
#.......#...#...#.#............
|
||||||
|
#..#..#.#.##....#.#........#...
|
||||||
|
........##...................#.
|
||||||
|
........#...##...#.#.###.......
|
||||||
|
##............#...#.....#.##...
|
||||||
|
...........#....###...#.....#..
|
||||||
|
.......#......#..##..#.....#...
|
||||||
|
..#.#..#....#.........#...#..#.
|
||||||
|
.........##......#.....##..##..
|
||||||
|
........#.....#....#..##......#
|
||||||
|
..#..#.......#..............#..
|
||||||
|
.....#.#.......................
|
||||||
|
.#.#....#.........#............
|
||||||
|
.......#.....#.###.............
|
||||||
|
......##......#...........#..#.
|
||||||
|
.#...............##...#........
|
||||||
|
.....#..##........###.........#
|
||||||
|
#...........#..#............#..
|
||||||
|
.........#....#..#.#......#....
|
||||||
|
.......#.........#..##.........
|
||||||
|
.##.....#..................#...
|
||||||
|
....#............#.#....#.....#
|
||||||
|
..#....#...##....#...#.#...#...
|
||||||
|
..........#................#.#.
|
||||||
|
#...#.#.#.####..#.#..........#.
|
||||||
|
..#...#.##......#...........#..
|
||||||
|
..#.....#...#.......#......#..#
|
||||||
|
..............#.......#........
|
||||||
|
.#..#..........#.....#...#..#.#
|
||||||
|
#........#...#......#.......#..
|
||||||
|
#..................#...........
|
||||||
|
..#...#........#...#..#........
|
||||||
|
..............#.....#.....#..#.
|
||||||
|
#.#.......#..............##.##.
|
||||||
|
....#.#.....##....#...........#
|
||||||
|
......#....#...#..#.......#....
|
||||||
|
....#..#.#.....#..##.....#....#
|
||||||
|
...........#.......#.#.#.......
|
||||||
|
#.......#..##........#..#......
|
||||||
|
.........#.##..#..............#
|
||||||
|
...........#............###.#..
|
||||||
|
..#.....#.....##...#.........#.
|
||||||
|
....##............##........#..
|
||||||
|
.....###..........#......##....
|
||||||
|
#...##..#..#..........#........
|
||||||
|
....#.....#.......#..#.#...##..
|
||||||
|
.#....#........#.#.........#.#.
|
||||||
|
##...#.#.....#......#..........
|
||||||
|
.....##.....#....#.....###.#..#
|
||||||
|
..............#..###..#...#..#.
|
||||||
|
....#...#....#.............#.#.
|
||||||
|
.#.........#.....#........#.##.
|
||||||
|
....#.........#..........#.....
|
||||||
|
.......#........#.#.#..........
|
||||||
|
#........##....#.........#.....
|
||||||
|
..##..........#....#.#...#....#
|
||||||
|
#...#.#......#..##..........#.#
|
||||||
|
.....#..#...#..#...............
|
||||||
|
#...#..............#...........
|
||||||
|
.#...#....#..##.....#....#.#...
|
||||||
|
.#...#.......#...#..#.##....#..
|
||||||
|
#....#........#....#...#.......
|
||||||
|
#..#......#.....#.....#..##....
|
||||||
|
......#.#....##....##..#...#...
|
||||||
|
..#....#.#.###..............#..
|
||||||
|
.#.##.......#.#.#..#...#..#....
|
||||||
|
..#..........#.#....#..#.#....#
|
||||||
|
..........#...#...#..........#.
|
||||||
|
..........#.....#.#..#..#....##
|
||||||
|
.#.#...##...#...........####...
|
||||||
|
........##..#.#..........#.##.#
|
||||||
|
#......###...........#...#.....
|
||||||
|
..#.#....##.........##....#....
|
||||||
|
#....#.##..##..#..#.....#.....#
|
||||||
|
.##.....##....##....#.......#..
|
||||||
|
#...#.....##....#..........#...
|
||||||
|
............#.#.##....#....#...
|
||||||
|
....#............#.....#......#
|
||||||
|
....................#..........
|
||||||
|
..#....................#..#....
|
||||||
|
....#.....#........#..##...#...
|
||||||
|
#.....#.#....................##
|
||||||
|
.#....#.#.#...#..........#....#
|
||||||
|
....#...#......#...#.....##...#
|
||||||
|
.....#.........................
|
||||||
|
.......#..#.#...#...#...#.....#
|
||||||
|
...#......#.##.#...#..#...##.#.
|
||||||
|
...........................#..#
|
||||||
|
..#.#.....#........##..........
|
||||||
|
....#...##........#.#.#..#...##
|
||||||
|
..##.....#..###.........##.##..
|
||||||
|
.#..#.....#...#.............#..
|
||||||
|
#..............##...#....##....
|
||||||
|
.##......#.#............#......
|
||||||
|
.............##...#.#.......#..
|
||||||
|
.........#..#..#...............
|
||||||
|
........##......#....##........
|
||||||
|
...#.........#.#.#.............
|
||||||
|
#..........#......#......#..#..
|
||||||
|
.............##.#.#..#.#.#...#.
|
||||||
|
.....#.........#...............
|
||||||
|
..##.#..#.....##..#........#.#.
|
||||||
|
.#..........#.#.......#......##
|
||||||
|
.#........................#....
|
||||||
|
#....#....#...#..#......#......
|
||||||
|
........#.......#......#.....#.
|
||||||
|
.....#....##..#...###...#....#.
|
||||||
|
....#.........#....#......#....
|
||||||
|
.............#...#....#.......#
|
||||||
|
.....#.........#..#.#..........
|
||||||
|
.........#..#........#.#.#.....
|
||||||
|
......#.##......#....#.#.##.#..
|
||||||
|
.#...#.#...#...#.#......#....##
|
||||||
|
.#................#......#.....
|
||||||
|
#.#.#...............#..........
|
||||||
|
.....#.#.......#...#........#..
|
||||||
|
#...#.#.#.##..#...........#..#.
|
||||||
|
.............###.........#....#
|
||||||
|
.#.....#.......##....##.......#
|
||||||
|
....#...#.......#.##.....#.....
|
||||||
|
...........##.........#...#....
|
||||||
|
..............#.#..#.....#..#..
|
||||||
|
#.#...#..#.#.........#......#.#
|
||||||
|
#.##.....##....#........#.#.#.#
|
||||||
|
##.#.###.........##.......#..#.
|
||||||
|
#.....#.....................#..
|
||||||
|
.........##........#...........
|
||||||
|
.###........##....#...#........
|
||||||
|
....#.#........##...........#..
|
||||||
|
..........#.....#..........#..#
|
||||||
|
......#..............#......#..
|
||||||
|
.....#...#......#...#...#......
|
||||||
|
..........#.#..#....#...#..###.
|
||||||
|
#..##........#................#
|
||||||
|
..#............................
|
||||||
|
.....#.........#.#.............
|
||||||
|
........#...#.....#...##......#
|
||||||
|
..#........#................#..
|
||||||
|
......#....#..#......#.........
|
||||||
|
...........##....#..#.#........
|
||||||
|
.....#.............###.........
|
||||||
|
#............#......#..#.......
|
||||||
|
..#..#.................#..#..##
|
||||||
|
.......#......#.....#........#.
|
||||||
|
....................#..#.##...#
|
||||||
|
.#..##...............##...#....
|
||||||
|
...#...#....#........#.........
|
||||||
|
.....##...#.....###............
|
||||||
|
.###.........#........#.....##.
|
||||||
|
.............#...#.............
|
||||||
|
...#.#...............#..##..#.#
|
||||||
|
...#...............#..#.....#..
|
||||||
|
....#.#..................#...#.
|
||||||
|
..........#...........#.#...###
|
||||||
|
#...#......#................#..
|
||||||
|
...#.#.......#...#......#.##...
|
||||||
|
......#..........#.............
|
||||||
|
##.......#.##.#...........#....
|
||||||
|
......#...#.#.....#............
|
||||||
|
.#.....#.....#.....#.........#.
|
||||||
|
..................#............
|
||||||
|
.#.#.#.....#......#.##.........
|
||||||
|
.......#..##.##......#..#....#.
|
||||||
|
...#.#.#......#...#........#...
|
||||||
|
..#............#......#.......#
|
||||||
|
..#......#........#.........#..
|
||||||
|
..#..#.#.#.....#.............#.
|
||||||
|
..#.#..##......#...#...##......
|
||||||
|
.##...#....##.#.#...........#..
|
||||||
|
..............#..#...#....#....
|
||||||
|
.......#.#........#............
|
||||||
|
.....##..###........#..........
|
||||||
|
......................#........
|
||||||
|
..##....#....#.................
|
||||||
|
.##.#.###.#........#.##..#...#.
|
||||||
|
##................#...........#
|
||||||
|
....#..##.....##...............
|
||||||
|
.#.....#..#............#.....#.
|
||||||
|
#.........#..............#.....
|
||||||
|
...##.#......#...#.............
|
||||||
|
................#..............
|
||||||
|
...#.....#....##...#..#....#...
|
||||||
|
..............##..#...#.##..#..
|
||||||
|
......................#..#....#
|
||||||
|
.......#....#..#.##.........#.#
|
||||||
|
#...#........##.......#........
|
||||||
|
...##...............#.....#....
|
||||||
|
.##...##...#...................
|
||||||
|
.........##.#...#.........#....
|
||||||
|
............#............#..#..
|
||||||
|
.............................#.
|
||||||
|
....#.#....#...................
|
||||||
|
......#......#...#..##.........
|
||||||
|
#........#.#.#.#.#......#....#.
|
||||||
|
.#.........#.#...#......#..#.#.
|
||||||
|
..............#....##.........#
|
||||||
|
.#.......#..#....#.#.#....#....
|
||||||
|
...###.#.#..#...#....#....#....
|
||||||
|
#........#....................#
|
||||||
|
......#...##.###..#..##...#....
|
||||||
|
.....#........#.......#........
|
||||||
|
#..#...........#.#.............
|
||||||
|
....##.#...#..##............##.
|
||||||
|
#.#..##..#...#...#.....#.......
|
||||||
|
..#.............#.##..#...#.##.
|
||||||
|
.#.....##.#..#...#...........#.
|
||||||
|
....#...#....................##
|
||||||
|
....##......#.###......#......#
|
||||||
|
...#...#.........#..#.##....#..
|
||||||
|
#......#..#....###.........#...
|
||||||
|
#...........##.............#.#.
|
||||||
|
#..............##....#......#..
|
||||||
|
.........#...#.#...#...#.......
|
||||||
|
....#....#............#.......#
|
||||||
|
........#...#....#......##.....
|
||||||
|
..........#.#..#.........#.....
|
||||||
|
#........#.##....##......#.....
|
||||||
|
...#.......#...................
|
||||||
|
###...#...#..#.##....#.....#...
|
||||||
|
........##..........#.##..#....
|
||||||
|
.....#......#..#.....#.....#.#.
|
||||||
|
...#..#..##..###.....##.#......
|
||||||
|
#..#......##...#............#..
|
||||||
|
#............#....#..#.........
|
||||||
|
#........#.......#......#..##.#
|
||||||
|
...#.#.........#.#.............
|
||||||
|
#..............#..............#
|
||||||
|
#.#......#..........##.........
|
||||||
|
#..##...........#..##...#......
|
||||||
|
.....#.#.....#......#.....#.#.#
|
||||||
|
.#.##...#...##...........#....#
|
||||||
|
#.............#........#.......
|
||||||
|
..##.............#...#.........
|
||||||
|
....#.#......###....#..........
|
||||||
|
...#..#.....#..##.#....#...#.#.
|
||||||
|
.............##................
|
||||||
|
#.#............#........#..#.#.
|
||||||
|
.#......#.....#...........#....
|
||||||
|
...#.........#...........#.##..
|
||||||
|
.....#...#.....#..#..........#.
|
||||||
|
........#.#...............#.#..
|
||||||
|
.......#..#..#.....#.......##..
|
||||||
|
.#...#...#..#...##...#.........
|
||||||
|
..........##....#..#.##..#.....
|
||||||
|
....#.................#...#....
|
||||||
|
.........#...#......#....#....#
|
||||||
|
.........#..#...#.##........##.
|
||||||
|
#.#....##.......#.#............
|
||||||
|
##.......##..................#.
|
||||||
|
......#...#......##............
|
||||||
|
##.#...#.#...........#..#......
|
||||||
|
.........#.........#..#.#...#..
|
||||||
|
.#...#.......#.#...###.........
|
||||||
|
................#.#.....#......
|
||||||
|
..#...#.....#........#.........
|
||||||
|
.........##.###.#.#.....#...#..
|
||||||
|
#..#..........#....#.#...#...##
|
||||||
|
##.#.#....#..##.............#.#
|
||||||
|
.###....#..#...............##..
|
||||||
|
............#......#.#.#....#..
|
||||||
|
........#...#..#...#...........
|
||||||
|
##.........#................#..
|
||||||
|
...###...#.#..#...#..........##
|
||||||
|
...#......#......##........#...
|
||||||
|
.......#............#..........
|
||||||
|
.....#.....##....#.....###.....
|
||||||
|
.#...#...#.....#..#..#....#..#.
|
||||||
|
#.#........#..#.......##...#.##
|
||||||
|
.....#.....##..#.##........#..#
|
||||||
|
.....#...#...........#.........
|
||||||
|
..#....#.#...#..#....##...#...#
|
||||||
|
...........#...##.........#....
|
||||||
|
..#....#....##........#.####...
|
||||||
|
#.............#.#.............#
|
||||||
|
...................#.....#.#..#
|
||||||
|
.#....#.#.............#.#......
|
||||||
|
#...........#............#.#...
|
||||||
|
..#.........#.#....#.......##..
|
||||||
|
#....####......#...#......#....
|
||||||
|
....##....#...................#
|
||||||
|
....#.##....#.............#....
|
||||||
|
.........##........#.....#..#..
|
||||||
|
............#...#..............
|
||||||
|
............#..##....#.....##.#
|
||||||
|
............#.....#......#.....
|
||||||
|
........#..#........##.#.......
|
||||||
|
...#.#........#..............#.
|
||||||
|
............#.........#..#.#...
|
||||||
|
................#.............#
|
||||||
|
..##..........##......#.#......
|
||||||
|
..#..#.##....#.........#...#...
|
||||||
|
...........##...#.#.#..........
|
||||||
|
.#.#.......#.#...#.........#...
|
||||||
|
.........#..#........#..#.#....
|
||||||
|
..........##..#.##....#....#...
|
||||||
|
....#...............#.......#..
|
||||||
|
##..........##.................
|
||||||
|
....#.#.#.....#..........##.#..
|
||||||
|
..............#.##..........##.
|
||||||
|
##...............#...#..#......
|
||||||
|
..#..#..........#......#.......
|
||||||
|
#...#..##.#.#..................
|
||||||
|
....#....##......##.#...#....##
|
||||||
|
.#...#.#....##.............#..#
|
||||||
|
................#......###.....
|
||||||
|
..#..#.............#.#.......#.
|
||||||
|
..#..................#.......#.
|
||||||
|
.....#.......#....#.##...#.##..
|
||||||
|
.....##.......#......#..#......
|
||||||
|
#..#.......#........#..........
|
||||||
|
..#...#..#....#.........#......
|
||||||
|
#..#..#......##..#.##....####..
|
||||||
|
......##.#.....#..#.......#....
|
||||||
|
.##...#.....#..#...#.#.........
|
||||||
|
#.....#........###....#...#..#.
|
||||||
|
.#....#.#..#......#............
|
||||||
|
.........#..#..#.....#........#
|
||||||
|
..#.......#..........#..#......
|
||||||
|
......#.......##.#....#.#.#....
|
||||||
|
.#............#.....#.......#..
|
||||||
|
...#..#...............#........
|
||||||
|
.....#.........................
|
@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
class cursor():
|
||||||
|
def __init__(self, game_map):
|
||||||
|
self.x, self.y = 0, 0
|
||||||
|
self.limit_x = len(game_map[1])
|
||||||
|
self.map = game_map
|
||||||
|
def setx(self, x):
|
||||||
|
self.x = x % self.limit_x
|
||||||
|
def sety(self, y):
|
||||||
|
self.y = y
|
||||||
|
def isTree(self):
|
||||||
|
line = self.map[y]
|
||||||
|
char = line[self.x]
|
||||||
|
return char == '#'
|
||||||
|
|
||||||
|
with open('input', 'r') as f:
|
||||||
|
game_map = list(map(str.strip, f.readlines()))
|
||||||
|
|
||||||
|
slopes = [(1, 1), (3, 1), (5, 1), (7, 1), (1, 2)]
|
||||||
|
cur = cursor(game_map)
|
||||||
|
tree_list = []
|
||||||
|
for slope in slopes:
|
||||||
|
print(slope)
|
||||||
|
x, y = 0, 0
|
||||||
|
cur.setx(x)
|
||||||
|
cur.sety(y)
|
||||||
|
try:
|
||||||
|
trees = 0
|
||||||
|
while True:
|
||||||
|
x += slope[0]
|
||||||
|
y += slope[1]
|
||||||
|
cur.setx(x)
|
||||||
|
cur.sety(y)
|
||||||
|
if cur.isTree():
|
||||||
|
trees += 1
|
||||||
|
except IndexError:
|
||||||
|
tree_list.append(trees)
|
||||||
|
result = 1
|
||||||
|
print(tree_list)
|
||||||
|
for res in tree_list:
|
||||||
|
result *= res
|
||||||
|
|
||||||
|
print(result)
|
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
depthInc = 0
|
||||||
|
lastDepth = 9999
|
||||||
|
for line in content:
|
||||||
|
depth = int(line.strip())
|
||||||
|
if depth > lastDepth:
|
||||||
|
depthInc += 1
|
||||||
|
lastDepth = depth
|
||||||
|
print(depthInc)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
depth_inc = 0
|
||||||
|
last_window = 9999
|
||||||
|
window = [] # queue for "search window"
|
||||||
|
window_size = 3
|
||||||
|
|
||||||
|
while len(window) < window_size:
|
||||||
|
window.append(int(content.pop(0).strip()))
|
||||||
|
# we now have our starting state
|
||||||
|
last_window = sum(window)
|
||||||
|
while(content):
|
||||||
|
# slide window 1 position
|
||||||
|
window.pop(0)
|
||||||
|
window.append(int(content.pop(0).strip()))
|
||||||
|
window_sum = sum(window)
|
||||||
|
if window_sum > last_window:
|
||||||
|
depth_inc += 1
|
||||||
|
last_window = window_sum
|
||||||
|
print(depth_inc)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
content = open('content', 'r').read()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
position = { 'x': 0, 'y': 0 }
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
for line in content:
|
||||||
|
move = line.strip()
|
||||||
|
match = re.match('^(\w+) (\d+)$', move)
|
||||||
|
direction, amount = match.groups(1)
|
||||||
|
amount = int(amount)
|
||||||
|
#print(f'logged: {direction} {amount} ')
|
||||||
|
if direction == "forward":
|
||||||
|
position['x'] += amount
|
||||||
|
elif direction == "down":
|
||||||
|
position['y'] += amount
|
||||||
|
elif direction == "up":
|
||||||
|
position['y'] -= amount
|
||||||
|
print(position['x'] * position['y'])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,25 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
position = { 'distance': 0, 'depth': 0, 'aim': 0 }
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
for line in content:
|
||||||
|
move = line.strip()
|
||||||
|
match = re.match('^(\w+) (\d+)$', move)
|
||||||
|
direction, amount = match.groups(1)
|
||||||
|
amount = int(amount)
|
||||||
|
#print(f'logged: {direction} {amount} ')
|
||||||
|
if direction == "forward":
|
||||||
|
position['distance'] += amount
|
||||||
|
position['depth'] += position['aim'] * amount
|
||||||
|
elif direction == "down":
|
||||||
|
position['aim'] += amount
|
||||||
|
elif direction == "up":
|
||||||
|
position['aim'] -= amount
|
||||||
|
print(position['distance'] * position['depth'])
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
POSITION = { 'x': 0, 'y': 0 }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
content = open('input', 'r').read()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main():
|
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
def main():
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
input_length = len(content)
|
||||||
|
# init with first row
|
||||||
|
popcounts = [int(bit) for bit in content.pop(0).strip()]
|
||||||
|
#print(popcounts)
|
||||||
|
for line in content:
|
||||||
|
popcounts = list(map(int.__add__, popcounts, [int(bit) for bit in line.strip()]))
|
||||||
|
gamma_rate = ""
|
||||||
|
for val in popcounts:
|
||||||
|
if val >= (input_length/2):
|
||||||
|
gamma_rate += "1"
|
||||||
|
else:
|
||||||
|
gamma_rate += "0"
|
||||||
|
|
||||||
|
mask = (1 << len(popcounts)) - 1
|
||||||
|
gamma_rate = int(gamma_rate, 2)
|
||||||
|
epsilon_rate = gamma_rate ^ mask
|
||||||
|
print(f'gamma: {bin(gamma_rate)}')
|
||||||
|
print(f'epsil: {bin(epsilon_rate)}')
|
||||||
|
|
||||||
|
print(gamma_rate * epsilon_rate)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
def is_bit_set(integer, bit_index):
|
||||||
|
return bool(integer & (1 << bit_index))
|
||||||
|
|
||||||
|
def get_mcv(_input):
|
||||||
|
input_length = len(_input)
|
||||||
|
popcounts = [0 for bit in range(len(_input[0].strip()))]
|
||||||
|
#print(popcounts)
|
||||||
|
for line in _input:
|
||||||
|
popcounts = list(map(int.__add__, popcounts, [int(bit) for bit in line.strip()]))
|
||||||
|
mcv = []
|
||||||
|
for val in popcounts:
|
||||||
|
if val >= (input_length/2):
|
||||||
|
mcv.append(1)
|
||||||
|
else:
|
||||||
|
mcv.append(0)
|
||||||
|
return mcv
|
||||||
|
|
||||||
|
def main():
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
#mcv = get_mcv(content)
|
||||||
|
# mask = (1 << len(popcounts)) - 1
|
||||||
|
# gamma_rate = int(gamma_rate, 2)
|
||||||
|
# epsilon_rate = gamma_rate ^ mask
|
||||||
|
|
||||||
|
# print(f'gamma: {bin(gamma_rate)}')
|
||||||
|
# print(f'epsil: {bin(epsilon_rate)}')
|
||||||
|
#print(f'mcv: {mcv}')
|
||||||
|
bit_length = len(content[0].strip())
|
||||||
|
oxy_input = content
|
||||||
|
while len(oxy_input) > 1:
|
||||||
|
offset = 0
|
||||||
|
while offset < bit_length:
|
||||||
|
mcv = get_mcv(oxy_input)
|
||||||
|
print(mcv)
|
||||||
|
print(f'length {len(oxy_input)} offset {offset} mcv {mcv[offset]} ')
|
||||||
|
oxy_input = [x for x in oxy_input if int(x[offset]) == mcv[offset]]
|
||||||
|
if len(oxy_input) == 1:
|
||||||
|
break
|
||||||
|
offset += 1
|
||||||
|
oxygen_value = int(oxy_input[0].strip(), 2)
|
||||||
|
|
||||||
|
co_input = content
|
||||||
|
while len(co_input) > 1:
|
||||||
|
offset = 0
|
||||||
|
while offset < bit_length:
|
||||||
|
print(f'length {len(co_input)} offset {offset} mcv {mcv[offset]} ')
|
||||||
|
mcv = get_mcv(co_input)
|
||||||
|
print(mcv)
|
||||||
|
co_input = [x for x in co_input if int(x[offset]) != mcv[offset]]
|
||||||
|
if len(co_input) == 1:
|
||||||
|
break
|
||||||
|
offset += 1
|
||||||
|
co_value = int(co_input[0].strip(), 2)
|
||||||
|
print(co_value * oxygen_value)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
def main():
|
||||||
|
content = open('input', 'r').read()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main():
|
Binary file not shown.
@ -0,0 +1,66 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
class BingoBoard():
|
||||||
|
def __init__(self, board):
|
||||||
|
self._hits = [[False for x in range(5)] for x in range(5)]
|
||||||
|
self._board = board
|
||||||
|
self._remaining = 0
|
||||||
|
self.bingo = False
|
||||||
|
for line in board:
|
||||||
|
line = list(map(int, line))
|
||||||
|
self._remaining += sum(line)
|
||||||
|
|
||||||
|
def isBingo(self):
|
||||||
|
rowBingo = any(all(row) for row in self._hits)
|
||||||
|
colBingo = any(all(row[col] for row in self._hits) for col in range(len(self._board)))
|
||||||
|
if colBingo or rowBingo:
|
||||||
|
self.bingo = True
|
||||||
|
return self.bingo
|
||||||
|
|
||||||
|
def checkField(self, field):
|
||||||
|
for row_idx, row in enumerate(self._board):
|
||||||
|
try:
|
||||||
|
col_idx = row.index(field)
|
||||||
|
self._hits[row_idx][col_idx] = True
|
||||||
|
self._remaining -= int(field)
|
||||||
|
return True
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
return False
|
||||||
|
def getRemaining(self):
|
||||||
|
return self._remaining
|
||||||
|
|
||||||
|
def chunker(seq, size):
|
||||||
|
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
|
||||||
|
|
||||||
|
def main():
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
content = list(map(str.strip, content))
|
||||||
|
content = [line for line in content if line != ""]
|
||||||
|
draws = content.pop(0).split(',')
|
||||||
|
print(draws)
|
||||||
|
boards = []
|
||||||
|
for board in chunker(content, 5):
|
||||||
|
board = list(map(str.split, board))
|
||||||
|
boards.append(BingoBoard(board))
|
||||||
|
print(f'Loaded {len(boards)} boards, playing {len(draws)} moves')
|
||||||
|
boards_finished = 0
|
||||||
|
total_boards = len(boards)
|
||||||
|
for draw in draws:
|
||||||
|
print(f'New number drawn: {draw}')
|
||||||
|
boards_hit = 0
|
||||||
|
for board in boards:
|
||||||
|
if not board.bingo:
|
||||||
|
if board.checkField(draw):
|
||||||
|
boards_hit += 1
|
||||||
|
if board.isBingo():
|
||||||
|
print('WE HAVE A WINNER!')
|
||||||
|
print(board.getRemaining() * int(draw))
|
||||||
|
boards_finished += 1
|
||||||
|
#boards.remove(board)
|
||||||
|
#break
|
||||||
|
print(f'{boards_hit} hit this draw')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,601 @@
|
|||||||
|
67,3,19,4,64,39,85,14,84,93,79,26,61,24,65,63,15,69,48,8,82,75,36,96,16,49,28,40,97,38,76,91,83,7,62,94,21,95,6,10,43,17,31,34,81,23,52,60,54,29,70,12,35,0,57,45,20,71,78,44,90,2,33,68,53,92,50,73,88,47,58,5,9,87,22,13,18,30,59,56,99,11,77,55,72,32,37,89,42,27,66,41,86,51,74,1,46,25,98,80
|
||||||
|
|
||||||
|
24 75 59 41 17
|
||||||
|
58 74 64 92 39
|
||||||
|
68 8 78 85 72
|
||||||
|
18 3 22 4 34
|
||||||
|
11 76 6 28 50
|
||||||
|
|
||||||
|
21 31 36 13 87
|
||||||
|
80 91 63 62 77
|
||||||
|
46 93 40 16 25
|
||||||
|
47 66 30 54 74
|
||||||
|
56 59 86 72 37
|
||||||
|
|
||||||
|
92 43 68 60 81
|
||||||
|
3 78 75 73 12
|
||||||
|
90 50 31 67 76
|
||||||
|
28 63 52 95 61
|
||||||
|
6 38 79 19 17
|
||||||
|
|
||||||
|
81 20 61 60 86
|
||||||
|
43 27 50 21 85
|
||||||
|
77 84 68 76 24
|
||||||
|
33 13 89 1 48
|
||||||
|
6 57 30 11 5
|
||||||
|
|
||||||
|
66 24 22 86 2
|
||||||
|
67 77 72 88 87
|
||||||
|
21 60 89 36 32
|
||||||
|
39 37 29 17 31
|
||||||
|
78 97 63 94 91
|
||||||
|
|
||||||
|
85 71 86 16 54
|
||||||
|
98 11 82 89 17
|
||||||
|
38 23 99 59 69
|
||||||
|
58 12 74 15 93
|
||||||
|
41 5 52 48 26
|
||||||
|
|
||||||
|
3 32 61 29 27
|
||||||
|
98 74 34 58 23
|
||||||
|
24 54 76 79 88
|
||||||
|
71 90 97 96 68
|
||||||
|
21 33 72 47 82
|
||||||
|
|
||||||
|
13 70 59 7 91
|
||||||
|
74 88 85 50 15
|
||||||
|
35 8 40 93 6
|
||||||
|
95 29 52 18 99
|
||||||
|
57 64 0 9 39
|
||||||
|
|
||||||
|
72 6 74 64 0
|
||||||
|
73 9 46 52 98
|
||||||
|
81 68 14 69 48
|
||||||
|
25 17 5 54 19
|
||||||
|
11 47 33 23 62
|
||||||
|
|
||||||
|
45 14 90 59 97
|
||||||
|
43 46 58 55 29
|
||||||
|
80 53 2 37 78
|
||||||
|
40 79 57 52 72
|
||||||
|
92 13 54 25 19
|
||||||
|
|
||||||
|
39 78 99 84 2
|
||||||
|
80 53 24 51 5
|
||||||
|
33 20 48 43 66
|
||||||
|
82 13 52 30 98
|
||||||
|
14 16 26 44 74
|
||||||
|
|
||||||
|
38 35 45 83 94
|
||||||
|
18 28 41 22 13
|
||||||
|
44 9 10 98 58
|
||||||
|
64 73 24 31 34
|
||||||
|
39 85 50 77 63
|
||||||
|
|
||||||
|
71 18 68 47 65
|
||||||
|
25 40 82 69 44
|
||||||
|
30 6 72 73 7
|
||||||
|
80 24 41 79 2
|
||||||
|
11 20 96 84 54
|
||||||
|
|
||||||
|
16 6 38 75 25
|
||||||
|
56 2 51 69 81
|
||||||
|
15 54 91 85 90
|
||||||
|
94 0 7 71 30
|
||||||
|
28 17 76 67 31
|
||||||
|
|
||||||
|
13 12 23 7 71
|
||||||
|
91 89 84 40 78
|
||||||
|
44 83 90 21 31
|
||||||
|
77 17 3 95 42
|
||||||
|
87 82 38 30 67
|
||||||
|
|
||||||
|
44 64 60 76 36
|
||||||
|
21 39 86 89 34
|
||||||
|
5 54 24 14 58
|
||||||
|
78 55 98 74 69
|
||||||
|
2 97 42 59 51
|
||||||
|
|
||||||
|
51 35 78 54 40
|
||||||
|
9 52 5 66 19
|
||||||
|
92 74 68 90 73
|
||||||
|
76 11 60 67 22
|
||||||
|
44 7 1 89 15
|
||||||
|
|
||||||
|
93 72 3 95 13
|
||||||
|
77 1 32 35 5
|
||||||
|
68 91 98 23 51
|
||||||
|
59 19 31 57 56
|
||||||
|
54 46 92 88 26
|
||||||
|
|
||||||
|
84 91 40 9 73
|
||||||
|
90 41 51 12 10
|
||||||
|
0 61 89 13 8
|
||||||
|
62 74 5 45 92
|
||||||
|
65 27 78 26 31
|
||||||
|
|
||||||
|
54 21 32 84 42
|
||||||
|
68 25 76 3 40
|
||||||
|
24 15 59 12 2
|
||||||
|
72 49 73 31 93
|
||||||
|
35 67 70 60 91
|
||||||
|
|
||||||
|
55 34 51 76 54
|
||||||
|
73 28 5 87 52
|
||||||
|
24 36 65 49 27
|
||||||
|
99 10 12 44 50
|
||||||
|
23 77 53 80 4
|
||||||
|
|
||||||
|
30 42 92 11 40
|
||||||
|
83 49 41 72 54
|
||||||
|
73 97 18 4 37
|
||||||
|
0 15 70 55 33
|
||||||
|
71 26 46 25 81
|
||||||
|
|
||||||
|
22 35 41 71 58
|
||||||
|
55 39 18 85 45
|
||||||
|
79 44 9 38 2
|
||||||
|
47 4 23 34 82
|
||||||
|
49 63 88 81 29
|
||||||
|
|
||||||
|
49 82 40 37 77
|
||||||
|
17 45 92 7 65
|
||||||
|
51 38 91 68 32
|
||||||
|
73 57 69 85 50
|
||||||
|
87 10 95 59 1
|
||||||
|
|
||||||
|
57 27 95 59 87
|
||||||
|
78 96 82 63 52
|
||||||
|
39 17 14 74 21
|
||||||
|
47 64 28 94 65
|
||||||
|
40 3 49 25 61
|
||||||
|
|
||||||
|
97 9 24 80 27
|
||||||
|
5 36 83 15 29
|
||||||
|
86 33 32 61 2
|
||||||
|
87 48 82 91 4
|
||||||
|
35 10 16 85 65
|
||||||
|
|
||||||
|
17 12 43 96 5
|
||||||
|
36 76 29 51 73
|
||||||
|
98 66 27 97 91
|
||||||
|
78 28 2 61 30
|
||||||
|
95 70 19 47 54
|
||||||
|
|
||||||
|
98 88 51 32 7
|
||||||
|
89 61 16 91 95
|
||||||
|
94 23 19 77 70
|
||||||
|
42 90 36 26 44
|
||||||
|
99 71 5 57 13
|
||||||
|
|
||||||
|
14 43 97 72 83
|
||||||
|
39 73 58 16 59
|
||||||
|
51 2 28 24 18
|
||||||
|
40 70 65 27 91
|
||||||
|
4 44 68 74 56
|
||||||
|
|
||||||
|
90 9 71 23 73
|
||||||
|
11 95 62 36 38
|
||||||
|
77 34 60 67 41
|
||||||
|
28 48 98 40 42
|
||||||
|
47 51 82 87 63
|
||||||
|
|
||||||
|
19 41 57 61 50
|
||||||
|
64 84 8 81 11
|
||||||
|
83 68 31 66 90
|
||||||
|
2 72 71 96 79
|
||||||
|
78 89 77 60 4
|
||||||
|
|
||||||
|
73 88 72 23 68
|
||||||
|
98 52 21 89 43
|
||||||
|
48 29 10 8 6
|
||||||
|
49 3 54 37 12
|
||||||
|
83 34 51 77 66
|
||||||
|
|
||||||
|
52 16 94 84 81
|
||||||
|
3 87 99 72 98
|
||||||
|
48 10 44 32 22
|
||||||
|
9 69 36 74 62
|
||||||
|
51 42 91 68 60
|
||||||
|
|
||||||
|
39 54 16 97 14
|
||||||
|
58 84 89 15 20
|
||||||
|
67 49 19 55 86
|
||||||
|
10 44 76 12 96
|
||||||
|
74 36 51 41 2
|
||||||
|
|
||||||
|
27 22 90 79 86
|
||||||
|
47 73 2 53 58
|
||||||
|
31 89 37 19 12
|
||||||
|
20 83 87 23 30
|
||||||
|
32 8 92 55 68
|
||||||
|
|
||||||
|
19 39 64 53 12
|
||||||
|
32 7 80 72 79
|
||||||
|
82 96 21 13 40
|
||||||
|
18 25 61 9 70
|
||||||
|
84 95 42 36 52
|
||||||
|
|
||||||
|
48 12 29 61 7
|
||||||
|
34 13 99 98 6
|
||||||
|
74 36 66 91 88
|
||||||
|
75 85 93 80 83
|
||||||
|
96 11 44 47 39
|
||||||
|
|
||||||
|
79 43 28 16 75
|
||||||
|
66 64 17 71 72
|
||||||
|
36 30 19 60 38
|
||||||
|
1 13 77 69 94
|
||||||
|
78 6 97 93 63
|
||||||
|
|
||||||
|
86 45 14 38 37
|
||||||
|
35 20 15 68 55
|
||||||
|
92 3 0 90 8
|
||||||
|
88 32 87 17 22
|
||||||
|
33 34 78 13 43
|
||||||
|
|
||||||
|
87 92 58 95 6
|
||||||
|
35 23 54 40 97
|
||||||
|
82 64 88 10 94
|
||||||
|
63 8 26 98 18
|
||||||
|
42 76 39 50 51
|
||||||
|
|
||||||
|
75 13 4 72 95
|
||||||
|
11 50 15 47 52
|
||||||
|
12 73 80 74 70
|
||||||
|
68 30 21 37 58
|
||||||
|
91 2 24 32 82
|
||||||
|
|
||||||
|
76 66 4 68 79
|
||||||
|
19 73 24 51 96
|
||||||
|
16 52 26 78 7
|
||||||
|
48 30 17 82 92
|
||||||
|
28 88 90 71 59
|
||||||
|
|
||||||
|
95 18 69 85 63
|
||||||
|
16 78 97 10 41
|
||||||
|
53 98 73 87 19
|
||||||
|
15 35 94 57 82
|
||||||
|
48 40 14 3 38
|
||||||
|
|
||||||
|
39 40 78 64 87
|
||||||
|
90 69 83 18 16
|
||||||
|
58 91 36 23 74
|
||||||
|
25 51 99 4 76
|
||||||
|
62 10 88 2 1
|
||||||
|
|
||||||
|
72 95 34 2 84
|
||||||
|
38 12 97 92 47
|
||||||
|
24 23 41 10 75
|
||||||
|
56 87 68 45 89
|
||||||
|
14 85 52 98 79
|
||||||
|
|
||||||
|
96 97 15 98 17
|
||||||
|
76 13 6 38 81
|
||||||
|
66 90 51 36 85
|
||||||
|
95 48 40 99 94
|
||||||
|
69 88 19 4 1
|
||||||
|
|
||||||
|
20 36 93 50 35
|
||||||
|
13 15 6 49 92
|
||||||
|
0 70 38 29 22
|
||||||
|
68 34 73 89 71
|
||||||
|
5 10 12 79 31
|
||||||
|
|
||||||
|
16 63 34 29 2
|
||||||
|
43 57 18 51 67
|
||||||
|
83 47 49 17 96
|
||||||
|
84 33 40 7 50
|
||||||
|
60 30 41 81 76
|
||||||
|
|
||||||
|
86 85 4 48 61
|
||||||
|
34 46 89 78 23
|
||||||
|
83 8 43 57 30
|
||||||
|
21 36 7 75 37
|
||||||
|
29 40 62 60 54
|
||||||
|
|
||||||
|
47 28 42 39 57
|
||||||
|
16 46 54 52 55
|
||||||
|
78 84 32 95 23
|
||||||
|
27 26 9 75 62
|
||||||
|
90 85 0 65 37
|
||||||
|
|
||||||
|
89 46 4 81 55
|
||||||
|
68 13 79 18 90
|
||||||
|
57 73 21 15 32
|
||||||
|
59 56 62 58 36
|
||||||
|
45 98 64 33 12
|
||||||
|
|
||||||
|
89 92 3 69 78
|
||||||
|
45 50 12 71 72
|
||||||
|
18 87 64 48 88
|
||||||
|
84 77 53 17 62
|
||||||
|
68 6 83 91 2
|
||||||
|
|
||||||
|
5 80 25 90 19
|
||||||
|
21 86 66 69 61
|
||||||
|
22 59 39 54 91
|
||||||
|
9 27 14 24 40
|
||||||
|
95 74 18 63 11
|
||||||
|
|
||||||
|
84 63 42 80 61
|
||||||
|
23 39 49 92 25
|
||||||
|
56 64 70 2 88
|
||||||
|
99 29 15 26 9
|
||||||
|
82 91 35 7 40
|
||||||
|
|
||||||
|
4 93 44 42 16
|
||||||
|
78 72 32 73 81
|
||||||
|
84 91 85 82 69
|
||||||
|
88 49 59 92 96
|
||||||
|
61 99 19 33 38
|
||||||
|
|
||||||
|
87 2 46 16 83
|
||||||
|
29 31 45 37 51
|
||||||
|
25 65 26 89 19
|
||||||
|
80 17 27 8 73
|
||||||
|
54 4 76 0 12
|
||||||
|
|
||||||
|
50 65 47 43 31
|
||||||
|
58 94 90 71 12
|
||||||
|
27 3 81 45 9
|
||||||
|
1 33 37 15 83
|
||||||
|
96 26 41 77 57
|
||||||
|
|
||||||
|
22 54 71 73 5
|
||||||
|
64 77 15 98 38
|
||||||
|
61 90 20 57 40
|
||||||
|
60 18 83 72 12
|
||||||
|
34 91 87 41 21
|
||||||
|
|
||||||
|
82 29 51 16 61
|
||||||
|
37 41 86 20 19
|
||||||
|
59 30 43 15 53
|
||||||
|
17 83 5 14 89
|
||||||
|
78 70 1 12 62
|
||||||
|
|
||||||
|
19 95 68 67 92
|
||||||
|
14 70 73 62 29
|
||||||
|
40 9 97 82 66
|
||||||
|
11 50 77 47 53
|
||||||
|
20 75 88 94 93
|
||||||
|
|
||||||
|
48 39 62 56 44
|
||||||
|
95 43 10 89 60
|
||||||
|
40 0 73 17 59
|
||||||
|
50 2 8 4 5
|
||||||
|
24 79 20 13 96
|
||||||
|
|
||||||
|
25 40 36 54 13
|
||||||
|
46 48 37 71 26
|
||||||
|
29 42 27 44 23
|
||||||
|
24 61 79 3 90
|
||||||
|
97 21 43 86 18
|
||||||
|
|
||||||
|
95 4 14 12 71
|
||||||
|
11 55 50 83 85
|
||||||
|
9 43 29 32 28
|
||||||
|
78 20 63 87 40
|
||||||
|
61 84 37 75 77
|
||||||
|
|
||||||
|
4 96 87 22 2
|
||||||
|
95 70 39 35 49
|
||||||
|
23 27 19 43 0
|
||||||
|
42 75 36 52 11
|
||||||
|
13 8 57 88 46
|
||||||
|
|
||||||
|
37 5 87 58 86
|
||||||
|
65 78 89 57 79
|
||||||
|
70 40 14 80 97
|
||||||
|
88 55 68 28 13
|
||||||
|
53 59 24 26 1
|
||||||
|
|
||||||
|
5 95 59 71 23
|
||||||
|
44 57 34 65 83
|
||||||
|
49 93 9 77 28
|
||||||
|
37 69 79 99 73
|
||||||
|
17 27 33 66 85
|
||||||
|
|
||||||
|
75 61 32 0 16
|
||||||
|
65 59 47 25 81
|
||||||
|
87 97 8 50 70
|
||||||
|
78 34 38 42 51
|
||||||
|
22 63 6 66 1
|
||||||
|
|
||||||
|
65 68 77 1 19
|
||||||
|
53 14 7 88 9
|
||||||
|
11 22 40 25 39
|
||||||
|
69 93 37 72 5
|
||||||
|
90 80 38 10 16
|
||||||
|
|
||||||
|
15 81 62 68 44
|
||||||
|
26 70 43 55 89
|
||||||
|
22 69 8 94 51
|
||||||
|
52 19 79 96 10
|
||||||
|
24 48 63 74 84
|
||||||
|
|
||||||
|
36 9 57 4 40
|
||||||
|
95 98 58 70 87
|
||||||
|
45 97 92 23 86
|
||||||
|
6 31 15 78 12
|
||||||
|
90 75 48 41 3
|
||||||
|
|
||||||
|
34 97 31 92 20
|
||||||
|
59 6 89 79 70
|
||||||
|
39 90 16 72 91
|
||||||
|
76 75 85 47 68
|
||||||
|
86 62 32 19 64
|
||||||
|
|
||||||
|
44 5 72 25 32
|
||||||
|
87 18 93 33 0
|
||||||
|
22 96 46 4 28
|
||||||
|
61 81 77 52 80
|
||||||
|
66 24 63 23 45
|
||||||
|
|
||||||
|
53 33 99 31 75
|
||||||
|
60 39 56 89 57
|
||||||
|
76 81 14 95 23
|
||||||
|
8 19 98 13 5
|
||||||
|
49 91 54 47 7
|
||||||
|
|
||||||
|
11 58 44 6 94
|
||||||
|
31 87 50 77 22
|
||||||
|
49 9 40 24 60
|
||||||
|
86 36 12 3 71
|
||||||
|
59 99 68 20 66
|
||||||
|
|
||||||
|
83 11 93 36 6
|
||||||
|
73 55 97 48 18
|
||||||
|
3 43 51 90 57
|
||||||
|
38 65 39 95 68
|
||||||
|
94 24 59 20 34
|
||||||
|
|
||||||
|
53 57 69 3 16
|
||||||
|
2 91 22 24 26
|
||||||
|
44 84 31 28 82
|
||||||
|
46 94 65 78 99
|
||||||
|
55 49 11 66 21
|
||||||
|
|
||||||
|
10 53 20 69 41
|
||||||
|
70 12 56 2 94
|
||||||
|
87 23 74 60 55
|
||||||
|
59 67 18 38 22
|
||||||
|
71 4 51 81 39
|
||||||
|
|
||||||
|
59 32 64 66 53
|
||||||
|
20 11 27 10 81
|
||||||
|
41 93 12 45 99
|
||||||
|
70 94 77 16 76
|
||||||
|
30 79 57 0 90
|
||||||
|
|
||||||
|
84 8 76 13 98
|
||||||
|
96 1 9 65 38
|
||||||
|
23 30 64 3 95
|
||||||
|
70 26 34 86 79
|
||||||
|
2 22 77 41 68
|
||||||
|
|
||||||
|
77 11 55 80 21
|
||||||
|
45 70 28 0 57
|
||||||
|
38 74 33 86 22
|
||||||
|
42 13 66 61 83
|
||||||
|
46 94 7 82 40
|
||||||
|
|
||||||
|
53 68 94 71 64
|
||||||
|
44 99 86 66 97
|
||||||
|
80 33 48 74 45
|
||||||
|
29 13 11 15 62
|
||||||
|
36 89 9 47 56
|
||||||
|
|
||||||
|
49 90 16 55 14
|
||||||
|
68 13 27 47 46
|
||||||
|
54 93 97 10 31
|
||||||
|
33 58 6 83 48
|
||||||
|
63 28 95 8 62
|
||||||
|
|
||||||
|
72 60 12 24 20
|
||||||
|
1 22 90 58 65
|
||||||
|
84 5 96 80 33
|
||||||
|
64 15 47 23 46
|
||||||
|
63 36 6 31 91
|
||||||
|
|
||||||
|
19 27 96 54 36
|
||||||
|
33 32 65 11 26
|
||||||
|
0 47 25 59 56
|
||||||
|
41 45 76 14 98
|
||||||
|
52 22 31 66 38
|
||||||
|
|
||||||
|
7 91 5 18 14
|
||||||
|
4 19 54 42 71
|
||||||
|
31 82 81 61 39
|
||||||
|
58 51 70 10 55
|
||||||
|
43 60 15 89 21
|
||||||
|
|
||||||
|
85 31 75 55 76
|
||||||
|
92 93 54 98 44
|
||||||
|
21 22 6 79 20
|
||||||
|
34 64 7 82 78
|
||||||
|
53 36 96 37 19
|
||||||
|
|
||||||
|
84 58 35 68 76
|
||||||
|
79 91 92 25 29
|
||||||
|
93 83 23 22 80
|
||||||
|
51 28 53 60 40
|
||||||
|
0 62 77 49 39
|
||||||
|
|
||||||
|
35 38 24 88 53
|
||||||
|
61 30 52 49 83
|
||||||
|
20 97 6 16 55
|
||||||
|
60 43 14 67 4
|
||||||
|
66 9 85 28 77
|
||||||
|
|
||||||
|
73 57 65 36 50
|
||||||
|
18 94 14 59 67
|
||||||
|
7 78 40 6 13
|
||||||
|
86 49 5 22 66
|
||||||
|
63 32 68 44 80
|
||||||
|
|
||||||
|
52 95 93 25 16
|
||||||
|
0 83 41 77 49
|
||||||
|
13 63 65 84 69
|
||||||
|
51 9 39 47 24
|
||||||
|
92 4 14 8 66
|
||||||
|
|
||||||
|
70 31 33 69 50
|
||||||
|
36 29 76 56 64
|
||||||
|
97 11 40 19 81
|
||||||
|
18 57 10 24 15
|
||||||
|
30 44 42 89 60
|
||||||
|
|
||||||
|
42 97 9 38 60
|
||||||
|
48 62 53 70 27
|
||||||
|
49 72 90 86 18
|
||||||
|
69 50 8 78 84
|
||||||
|
28 13 17 10 35
|
||||||
|
|
||||||
|
84 7 60 17 36
|
||||||
|
30 1 3 89 49
|
||||||
|
45 10 85 97 76
|
||||||
|
31 38 16 2 12
|
||||||
|
43 58 11 77 78
|
||||||
|
|
||||||
|
53 20 98 94 82
|
||||||
|
54 62 27 92 83
|
||||||
|
60 41 66 5 30
|
||||||
|
58 15 90 88 3
|
||||||
|
38 45 7 26 37
|
||||||
|
|
||||||
|
62 94 17 55 28
|
||||||
|
27 86 26 42 87
|
||||||
|
90 18 84 20 85
|
||||||
|
92 97 59 83 0
|
||||||
|
89 21 25 36 11
|
||||||
|
|
||||||
|
89 60 41 91 54
|
||||||
|
16 9 57 40 53
|
||||||
|
87 56 64 23 27
|
||||||
|
13 42 84 2 52
|
||||||
|
66 77 80 0 38
|
||||||
|
|
||||||
|
58 23 55 96 75
|
||||||
|
56 8 19 52 10
|
||||||
|
98 13 70 62 73
|
||||||
|
6 64 86 4 12
|
||||||
|
51 91 93 29 34
|
||||||
|
|
||||||
|
55 8 99 51 70
|
||||||
|
33 30 52 58 10
|
||||||
|
38 31 87 9 61
|
||||||
|
63 46 15 48 24
|
||||||
|
32 94 40 74 21
|
||||||
|
|
||||||
|
5 70 26 48 28
|
||||||
|
41 35 93 34 44
|
||||||
|
46 86 19 0 27
|
||||||
|
7 81 51 95 15
|
||||||
|
36 84 76 75 92
|
||||||
|
|
||||||
|
34 0 31 21 3
|
||||||
|
23 96 49 51 11
|
||||||
|
42 27 47 66 91
|
||||||
|
93 89 16 62 54
|
||||||
|
22 71 26 32 99
|
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
def main():
|
||||||
|
content = open('input', 'r').read()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main():
|
@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
|
|
||||||
|
def main():
|
||||||
|
board_size = 1000
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
content = list(map(str.strip, content))
|
||||||
|
board = [[0 for _ in range(board_size)] for _ in range(board_size)]
|
||||||
|
for line in content:
|
||||||
|
m = re.match('^(\d+),(\d+) -> (\d+),(\d+)', line)
|
||||||
|
x1, y1, x2, y2 = tuple(map(int, m.groups(1)))
|
||||||
|
if x2 < x1:
|
||||||
|
x1, x2 = x2, x1
|
||||||
|
if y2 < y1:
|
||||||
|
y1, y2 = y2, y1
|
||||||
|
if x1 == x2: # move in y
|
||||||
|
assert(y1 < y2)
|
||||||
|
print(f'marking from {x1},{y1} to {x2},{y2}')
|
||||||
|
for y in range(y1, y2+1):
|
||||||
|
board[y][x1] += 1
|
||||||
|
elif y1 == y2: # move in x
|
||||||
|
print(f'marking from {x1},{y1} to {x2},{y2}')
|
||||||
|
assert(x1 < x2)
|
||||||
|
for x in range(x1, x2+1):
|
||||||
|
board[y1][x] += 1
|
||||||
|
else:
|
||||||
|
print(f'skipped: going from {x1},{y1} to {x2},{y2}')
|
||||||
|
|
||||||
|
hotspots = 0
|
||||||
|
for line in board:
|
||||||
|
for cell in line:
|
||||||
|
if cell > 1:
|
||||||
|
hotspots += 1
|
||||||
|
print(hotspots)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
|
|
||||||
|
def main():
|
||||||
|
board_size = 1000
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
content = list(map(str.strip, content))
|
||||||
|
board = [[0 for _ in range(board_size)] for _ in range(board_size)]
|
||||||
|
for line in content:
|
||||||
|
m = re.match('^(\d+),(\d+) -> (\d+),(\d+)', line)
|
||||||
|
x1, y1, x2, y2 = tuple(map(int, m.groups(1)))
|
||||||
|
if x1 == x2: # move in y
|
||||||
|
if y2 < y1:
|
||||||
|
y1, y2 = y2, y1
|
||||||
|
assert(y1 < y2)
|
||||||
|
print(f'marking from {x1},{y1} to {x2},{y2}')
|
||||||
|
for y in range(y1, y2+1):
|
||||||
|
board[y][x1] += 1
|
||||||
|
elif y1 == y2: # move in x
|
||||||
|
if x2 < x1:
|
||||||
|
x1, x2 = x2, x1
|
||||||
|
print(f'marking from {x1},{y1} to {x2},{y2}')
|
||||||
|
assert(x1 < x2)
|
||||||
|
for x in range(x1, x2+1):
|
||||||
|
board[y1][x] += 1
|
||||||
|
else: # move diagonal
|
||||||
|
#
|
||||||
|
offset_x = x2 - x1
|
||||||
|
offset_y = y2 - y1
|
||||||
|
if offset_x > 0: x_step = 1
|
||||||
|
else: x_step = -1
|
||||||
|
|
||||||
|
if offset_y > 0: y_step = 1
|
||||||
|
else: y_step = -1
|
||||||
|
|
||||||
|
for offset in range(abs(x2-x1)+1):
|
||||||
|
board[y1+(offset*y_step)][x1+(offset*x_step)] += 1
|
||||||
|
print(f'diagonal: going from {x1},{y1} to {x2},{y2} -> ')
|
||||||
|
|
||||||
|
hotspots = 0
|
||||||
|
for line in board:
|
||||||
|
for cell in line:
|
||||||
|
if cell > 1:
|
||||||
|
hotspots += 1
|
||||||
|
print(hotspots)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,500 @@
|
|||||||
|
365,809 -> 365,271
|
||||||
|
899,814 -> 899,921
|
||||||
|
967,913 -> 434,913
|
||||||
|
971,362 -> 631,362
|
||||||
|
597,422 -> 597,575
|
||||||
|
722,82 -> 722,365
|
||||||
|
98,891 -> 972,17
|
||||||
|
361,534 -> 361,52
|
||||||
|
958,858 -> 958,612
|
||||||
|
261,683 -> 261,477
|
||||||
|
859,381 -> 850,372
|
||||||
|
773,305 -> 703,305
|
||||||
|
527,318 -> 281,72
|
||||||
|
29,119 -> 863,953
|
||||||
|
428,723 -> 428,971
|
||||||
|
582,787 -> 582,326
|
||||||
|
795,495 -> 795,525
|
||||||
|
920,548 -> 920,718
|
||||||
|
421,264 -> 714,557
|
||||||
|
635,310 -> 635,983
|
||||||
|
751,479 -> 534,696
|
||||||
|
121,768 -> 121,129
|
||||||
|
679,858 -> 737,858
|
||||||
|
499,549 -> 603,653
|
||||||
|
398,95 -> 398,537
|
||||||
|
459,626 -> 473,626
|
||||||
|
611,905 -> 854,662
|
||||||
|
139,124 -> 568,124
|
||||||
|
230,921 -> 960,191
|
||||||
|
550,258 -> 883,258
|
||||||
|
866,830 -> 681,645
|
||||||
|
501,840 -> 774,840
|
||||||
|
383,900 -> 383,536
|
||||||
|
635,690 -> 868,690
|
||||||
|
37,948 -> 954,31
|
||||||
|
785,598 -> 785,955
|
||||||
|
844,957 -> 130,243
|
||||||
|
395,307 -> 562,307
|
||||||
|
463,286 -> 374,286
|
||||||
|
798,351 -> 52,351
|
||||||
|
549,79 -> 549,300
|
||||||
|
153,847 -> 977,23
|
||||||
|
499,976 -> 499,576
|
||||||
|
687,281 -> 621,215
|
||||||
|
765,640 -> 794,640
|
||||||
|
776,287 -> 906,157
|
||||||
|
879,108 -> 333,108
|
||||||
|
340,565 -> 340,521
|
||||||
|
706,809 -> 159,262
|
||||||
|
725,896 -> 941,896
|
||||||
|
673,470 -> 792,470
|
||||||
|
446,562 -> 638,754
|
||||||
|
315,626 -> 189,500
|
||||||
|
816,637 -> 77,637
|
||||||
|
171,313 -> 171,82
|
||||||
|
941,19 -> 150,810
|
||||||
|
885,854 -> 513,854
|
||||||
|
864,177 -> 864,213
|
||||||
|
156,150 -> 544,538
|
||||||
|
810,20 -> 344,486
|
||||||
|
651,757 -> 623,729
|
||||||
|
567,475 -> 126,475
|
||||||
|
436,975 -> 707,975
|
||||||
|
948,977 -> 138,167
|
||||||
|
498,186 -> 601,289
|
||||||
|
532,900 -> 532,515
|
||||||
|
12,809 -> 60,761
|
||||||
|
561,344 -> 453,452
|
||||||
|
241,600 -> 780,61
|
||||||
|
600,574 -> 258,232
|
||||||
|
53,661 -> 224,490
|
||||||
|
735,134 -> 735,707
|
||||||
|
850,14 -> 398,14
|
||||||
|
472,489 -> 472,22
|
||||||
|
949,196 -> 492,196
|
||||||
|
220,30 -> 959,769
|
||||||
|
354,889 -> 632,889
|
||||||
|
779,537 -> 397,919
|
||||||
|
136,876 -> 896,116
|
||||||
|
12,983 -> 930,65
|
||||||
|
716,856 -> 716,516
|
||||||
|
595,604 -> 595,97
|
||||||
|
863,70 -> 946,70
|
||||||
|
13,988 -> 988,13
|
||||||
|
595,955 -> 978,955
|
||||||
|
138,300 -> 138,452
|
||||||
|
801,883 -> 830,854
|
||||||
|
189,13 -> 110,13
|
||||||
|
315,68 -> 147,68
|
||||||
|
594,977 -> 594,707
|
||||||
|
424,726 -> 836,314
|
||||||
|
596,790 -> 842,790
|
||||||
|
135,135 -> 823,823
|
||||||
|
257,639 -> 718,178
|
||||||
|
462,859 -> 965,859
|
||||||
|
935,29 -> 18,946
|
||||||
|
308,841 -> 676,473
|
||||||
|
372,607 -> 946,607
|
||||||
|
518,806 -> 201,489
|
||||||
|
620,689 -> 620,480
|
||||||
|
376,378 -> 376,900
|
||||||
|
86,675 -> 179,768
|
||||||
|
509,790 -> 509,501
|
||||||
|
778,143 -> 778,474
|
||||||
|
965,140 -> 194,911
|
||||||
|
621,458 -> 316,153
|
||||||
|
83,931 -> 959,55
|
||||||
|
533,647 -> 402,778
|
||||||
|
957,336 -> 397,336
|
||||||
|
929,788 -> 929,587
|
||||||
|
642,978 -> 647,978
|
||||||
|
429,275 -> 276,275
|
||||||
|
662,821 -> 120,279
|
||||||
|
137,208 -> 85,260
|
||||||
|
815,641 -> 763,589
|
||||||
|
222,510 -> 881,510
|
||||||
|
892,930 -> 845,930
|
||||||
|
288,268 -> 288,509
|
||||||
|
900,13 -> 79,13
|
||||||
|
438,764 -> 248,764
|
||||||
|
391,495 -> 391,771
|
||||||
|
868,713 -> 223,68
|
||||||
|
680,180 -> 680,553
|
||||||
|
911,389 -> 911,578
|
||||||
|
107,182 -> 107,555
|
||||||
|
944,787 -> 944,25
|
||||||
|
405,193 -> 569,193
|
||||||
|
341,182 -> 952,182
|
||||||
|
497,197 -> 820,197
|
||||||
|
204,224 -> 693,224
|
||||||
|
342,290 -> 342,479
|
||||||
|
881,281 -> 881,899
|
||||||
|
971,987 -> 11,27
|
||||||
|
389,729 -> 501,729
|
||||||
|
638,939 -> 316,617
|
||||||
|
923,799 -> 923,84
|
||||||
|
17,744 -> 17,47
|
||||||
|
305,163 -> 305,506
|
||||||
|
703,414 -> 74,414
|
||||||
|
572,537 -> 122,987
|
||||||
|
385,364 -> 385,403
|
||||||
|
667,825 -> 667,607
|
||||||
|
466,86 -> 842,86
|
||||||
|
591,209 -> 151,649
|
||||||
|
329,526 -> 329,772
|
||||||
|
756,769 -> 122,135
|
||||||
|
638,454 -> 380,454
|
||||||
|
316,98 -> 654,98
|
||||||
|
273,740 -> 627,386
|
||||||
|
88,982 -> 963,107
|
||||||
|
913,710 -> 913,157
|
||||||
|
530,410 -> 129,410
|
||||||
|
660,237 -> 256,641
|
||||||
|
865,149 -> 865,934
|
||||||
|
769,47 -> 76,740
|
||||||
|
520,876 -> 520,630
|
||||||
|
101,839 -> 394,546
|
||||||
|
422,874 -> 330,874
|
||||||
|
987,19 -> 20,986
|
||||||
|
398,771 -> 174,771
|
||||||
|
574,546 -> 582,546
|
||||||
|
896,52 -> 11,937
|
||||||
|
927,927 -> 927,923
|
||||||
|
111,822 -> 953,822
|
||||||
|
633,130 -> 76,130
|
||||||
|
193,74 -> 193,400
|
||||||
|
887,828 -> 887,160
|
||||||
|
284,313 -> 500,97
|
||||||
|
813,500 -> 839,500
|
||||||
|
312,534 -> 129,534
|
||||||
|
202,34 -> 202,196
|
||||||
|
740,597 -> 681,597
|
||||||
|
37,979 -> 892,124
|
||||||
|
494,235 -> 494,426
|
||||||
|
334,892 -> 334,788
|
||||||
|
679,728 -> 947,728
|
||||||
|
635,557 -> 242,950
|
||||||
|
301,713 -> 326,738
|
||||||
|
261,867 -> 986,867
|
||||||
|
959,344 -> 412,891
|
||||||
|
605,659 -> 647,701
|
||||||
|
806,931 -> 270,395
|
||||||
|
546,107 -> 150,107
|
||||||
|
836,793 -> 131,88
|
||||||
|
231,572 -> 99,572
|
||||||
|
257,580 -> 257,459
|
||||||
|
254,669 -> 254,52
|
||||||
|
105,26 -> 973,894
|
||||||
|
101,532 -> 339,770
|
||||||
|
854,695 -> 319,160
|
||||||
|
599,190 -> 227,562
|
||||||
|
783,816 -> 370,816
|
||||||
|
505,638 -> 889,638
|
||||||
|
742,615 -> 742,399
|
||||||
|
984,750 -> 984,662
|
||||||
|
295,736 -> 937,94
|
||||||
|
762,435 -> 239,958
|
||||||
|
876,89 -> 758,89
|
||||||
|
178,964 -> 651,964
|
||||||
|
385,389 -> 67,71
|
||||||
|
514,967 -> 462,915
|
||||||
|
819,758 -> 819,978
|
||||||
|
541,109 -> 767,109
|
||||||
|
137,262 -> 137,815
|
||||||
|
720,591 -> 934,805
|
||||||
|
56,79 -> 752,775
|
||||||
|
493,519 -> 493,278
|
||||||
|
202,718 -> 202,344
|
||||||
|
665,24 -> 446,24
|
||||||
|
426,845 -> 426,193
|
||||||
|
116,930 -> 982,64
|
||||||
|
625,587 -> 625,908
|
||||||
|
13,965 -> 919,59
|
||||||
|
124,466 -> 124,194
|
||||||
|
793,249 -> 480,562
|
||||||
|
20,174 -> 359,174
|
||||||
|
982,988 -> 25,31
|
||||||
|
71,416 -> 586,416
|
||||||
|
157,122 -> 363,122
|
||||||
|
31,453 -> 344,453
|
||||||
|
435,284 -> 387,284
|
||||||
|
389,446 -> 379,446
|
||||||
|
913,536 -> 32,536
|
||||||
|
505,952 -> 505,495
|
||||||
|
489,159 -> 222,426
|
||||||
|
267,118 -> 954,805
|
||||||
|
15,833 -> 15,323
|
||||||
|
77,197 -> 946,197
|
||||||
|
955,22 -> 955,798
|
||||||
|
620,707 -> 620,915
|
||||||
|
740,495 -> 740,334
|
||||||
|
770,735 -> 770,184
|
||||||
|
420,524 -> 420,108
|
||||||
|
382,982 -> 556,982
|
||||||
|
111,777 -> 867,21
|
||||||
|
280,105 -> 915,740
|
||||||
|
235,23 -> 863,651
|
||||||
|
679,402 -> 197,884
|
||||||
|
72,77 -> 829,834
|
||||||
|
858,486 -> 443,486
|
||||||
|
403,115 -> 403,342
|
||||||
|
489,547 -> 489,53
|
||||||
|
404,280 -> 950,826
|
||||||
|
680,458 -> 260,458
|
||||||
|
10,610 -> 315,915
|
||||||
|
386,630 -> 128,888
|
||||||
|
293,732 -> 293,861
|
||||||
|
204,378 -> 116,378
|
||||||
|
90,269 -> 90,173
|
||||||
|
893,869 -> 92,68
|
||||||
|
741,694 -> 741,136
|
||||||
|
620,449 -> 620,62
|
||||||
|
866,678 -> 441,253
|
||||||
|
885,212 -> 167,930
|
||||||
|
868,853 -> 868,852
|
||||||
|
392,926 -> 982,336
|
||||||
|
252,930 -> 829,930
|
||||||
|
758,606 -> 949,606
|
||||||
|
79,895 -> 798,176
|
||||||
|
394,688 -> 901,688
|
||||||
|
355,217 -> 355,732
|
||||||
|
43,23 -> 903,883
|
||||||
|
426,691 -> 695,422
|
||||||
|
970,416 -> 970,950
|
||||||
|
317,334 -> 957,974
|
||||||
|
198,160 -> 198,195
|
||||||
|
610,191 -> 852,191
|
||||||
|
388,569 -> 899,58
|
||||||
|
490,662 -> 517,689
|
||||||
|
691,627 -> 643,627
|
||||||
|
404,564 -> 539,564
|
||||||
|
946,623 -> 478,155
|
||||||
|
686,608 -> 686,213
|
||||||
|
573,508 -> 47,508
|
||||||
|
610,262 -> 610,905
|
||||||
|
782,602 -> 581,602
|
||||||
|
987,378 -> 987,391
|
||||||
|
443,243 -> 447,243
|
||||||
|
710,493 -> 54,493
|
||||||
|
564,179 -> 564,966
|
||||||
|
828,673 -> 828,691
|
||||||
|
761,869 -> 260,869
|
||||||
|
810,949 -> 192,331
|
||||||
|
674,263 -> 467,263
|
||||||
|
481,81 -> 940,540
|
||||||
|
779,301 -> 159,301
|
||||||
|
763,457 -> 574,646
|
||||||
|
794,770 -> 784,780
|
||||||
|
19,964 -> 973,10
|
||||||
|
809,720 -> 809,142
|
||||||
|
822,324 -> 822,112
|
||||||
|
120,980 -> 354,980
|
||||||
|
238,277 -> 636,675
|
||||||
|
747,647 -> 550,450
|
||||||
|
419,205 -> 419,494
|
||||||
|
34,968 -> 719,283
|
||||||
|
306,591 -> 401,496
|
||||||
|
648,673 -> 526,795
|
||||||
|
486,426 -> 44,426
|
||||||
|
441,642 -> 137,338
|
||||||
|
396,740 -> 585,740
|
||||||
|
741,227 -> 117,851
|
||||||
|
620,263 -> 319,263
|
||||||
|
421,321 -> 300,321
|
||||||
|
732,387 -> 732,784
|
||||||
|
445,59 -> 445,273
|
||||||
|
151,910 -> 220,841
|
||||||
|
836,599 -> 274,599
|
||||||
|
598,193 -> 95,193
|
||||||
|
718,765 -> 884,931
|
||||||
|
403,165 -> 591,165
|
||||||
|
241,441 -> 736,441
|
||||||
|
902,986 -> 190,274
|
||||||
|
190,671 -> 190,342
|
||||||
|
887,301 -> 887,216
|
||||||
|
878,747 -> 244,113
|
||||||
|
93,747 -> 814,26
|
||||||
|
764,604 -> 764,444
|
||||||
|
510,852 -> 175,852
|
||||||
|
50,718 -> 132,718
|
||||||
|
791,436 -> 95,436
|
||||||
|
751,122 -> 751,146
|
||||||
|
953,162 -> 953,168
|
||||||
|
113,546 -> 113,828
|
||||||
|
752,407 -> 482,407
|
||||||
|
398,412 -> 305,412
|
||||||
|
912,630 -> 830,630
|
||||||
|
699,155 -> 354,155
|
||||||
|
842,874 -> 451,483
|
||||||
|
18,83 -> 580,645
|
||||||
|
63,594 -> 945,594
|
||||||
|
557,286 -> 557,773
|
||||||
|
21,448 -> 21,11
|
||||||
|
955,724 -> 955,353
|
||||||
|
857,411 -> 857,41
|
||||||
|
605,932 -> 605,159
|
||||||
|
985,64 -> 216,833
|
||||||
|
34,673 -> 610,97
|
||||||
|
888,764 -> 888,415
|
||||||
|
574,801 -> 646,801
|
||||||
|
290,593 -> 290,694
|
||||||
|
151,72 -> 887,808
|
||||||
|
632,53 -> 632,98
|
||||||
|
346,686 -> 963,69
|
||||||
|
258,129 -> 582,453
|
||||||
|
189,205 -> 646,662
|
||||||
|
272,821 -> 946,147
|
||||||
|
409,531 -> 462,478
|
||||||
|
725,575 -> 894,575
|
||||||
|
885,888 -> 885,878
|
||||||
|
475,210 -> 763,210
|
||||||
|
42,963 -> 920,85
|
||||||
|
985,213 -> 271,213
|
||||||
|
538,842 -> 482,842
|
||||||
|
175,529 -> 662,529
|
||||||
|
853,670 -> 259,76
|
||||||
|
656,364 -> 373,647
|
||||||
|
114,134 -> 827,134
|
||||||
|
58,878 -> 58,569
|
||||||
|
45,340 -> 684,979
|
||||||
|
35,829 -> 611,829
|
||||||
|
625,166 -> 625,898
|
||||||
|
849,980 -> 143,980
|
||||||
|
720,92 -> 330,92
|
||||||
|
689,255 -> 689,389
|
||||||
|
842,526 -> 867,526
|
||||||
|
834,399 -> 395,838
|
||||||
|
325,212 -> 786,673
|
||||||
|
934,941 -> 31,38
|
||||||
|
211,640 -> 812,39
|
||||||
|
449,896 -> 82,896
|
||||||
|
795,757 -> 630,592
|
||||||
|
894,691 -> 894,11
|
||||||
|
639,839 -> 639,360
|
||||||
|
941,862 -> 676,862
|
||||||
|
480,757 -> 480,123
|
||||||
|
425,734 -> 425,332
|
||||||
|
391,704 -> 350,745
|
||||||
|
173,352 -> 131,352
|
||||||
|
814,703 -> 814,150
|
||||||
|
347,156 -> 609,156
|
||||||
|
427,520 -> 862,520
|
||||||
|
787,724 -> 206,724
|
||||||
|
313,587 -> 312,587
|
||||||
|
743,491 -> 743,580
|
||||||
|
277,964 -> 845,396
|
||||||
|
132,65 -> 864,797
|
||||||
|
227,619 -> 227,365
|
||||||
|
360,484 -> 299,484
|
||||||
|
717,790 -> 875,790
|
||||||
|
798,480 -> 413,95
|
||||||
|
643,518 -> 643,407
|
||||||
|
939,530 -> 440,31
|
||||||
|
241,44 -> 241,82
|
||||||
|
362,49 -> 316,49
|
||||||
|
160,98 -> 382,98
|
||||||
|
67,593 -> 508,593
|
||||||
|
363,456 -> 470,456
|
||||||
|
644,63 -> 273,63
|
||||||
|
341,696 -> 72,696
|
||||||
|
270,303 -> 270,60
|
||||||
|
716,391 -> 716,983
|
||||||
|
678,904 -> 756,826
|
||||||
|
480,487 -> 290,487
|
||||||
|
762,316 -> 762,969
|
||||||
|
380,735 -> 380,652
|
||||||
|
223,922 -> 436,709
|
||||||
|
690,733 -> 815,733
|
||||||
|
185,130 -> 555,130
|
||||||
|
10,931 -> 924,17
|
||||||
|
678,940 -> 891,940
|
||||||
|
702,112 -> 702,673
|
||||||
|
554,559 -> 812,301
|
||||||
|
406,758 -> 377,758
|
||||||
|
361,119 -> 96,384
|
||||||
|
787,356 -> 787,963
|
||||||
|
957,54 -> 23,988
|
||||||
|
636,650 -> 34,48
|
||||||
|
170,21 -> 170,541
|
||||||
|
955,103 -> 85,973
|
||||||
|
144,698 -> 381,698
|
||||||
|
85,55 -> 925,895
|
||||||
|
12,15 -> 978,981
|
||||||
|
32,954 -> 32,301
|
||||||
|
438,234 -> 195,477
|
||||||
|
121,438 -> 121,542
|
||||||
|
353,607 -> 919,607
|
||||||
|
978,646 -> 978,643
|
||||||
|
925,112 -> 925,646
|
||||||
|
447,120 -> 447,104
|
||||||
|
332,398 -> 568,162
|
||||||
|
399,841 -> 276,841
|
||||||
|
923,853 -> 923,820
|
||||||
|
890,202 -> 964,202
|
||||||
|
306,782 -> 871,217
|
||||||
|
547,558 -> 21,32
|
||||||
|
893,164 -> 508,549
|
||||||
|
485,76 -> 361,76
|
||||||
|
713,768 -> 570,768
|
||||||
|
314,18 -> 461,18
|
||||||
|
618,281 -> 715,281
|
||||||
|
374,787 -> 374,209
|
||||||
|
324,97 -> 405,97
|
||||||
|
890,729 -> 566,729
|
||||||
|
762,438 -> 762,978
|
||||||
|
274,49 -> 274,525
|
||||||
|
905,34 -> 905,741
|
||||||
|
799,384 -> 799,742
|
||||||
|
378,358 -> 378,17
|
||||||
|
805,131 -> 31,905
|
||||||
|
640,453 -> 640,800
|
||||||
|
563,305 -> 563,945
|
||||||
|
898,590 -> 57,590
|
||||||
|
513,187 -> 513,76
|
||||||
|
706,407 -> 500,407
|
||||||
|
235,69 -> 861,695
|
||||||
|
408,259 -> 624,43
|
||||||
|
327,308 -> 722,308
|
||||||
|
109,247 -> 183,247
|
||||||
|
487,493 -> 619,625
|
||||||
|
769,452 -> 899,452
|
||||||
|
727,765 -> 524,968
|
||||||
|
887,472 -> 801,472
|
||||||
|
157,100 -> 936,879
|
||||||
|
584,658 -> 584,582
|
||||||
|
557,488 -> 557,510
|
||||||
|
790,35 -> 28,797
|
||||||
|
458,920 -> 350,812
|
||||||
|
54,797 -> 790,61
|
||||||
|
59,387 -> 59,334
|
||||||
|
565,368 -> 268,368
|
||||||
|
70,146 -> 70,525
|
||||||
|
681,451 -> 242,890
|
||||||
|
869,831 -> 869,272
|
||||||
|
276,184 -> 276,517
|
||||||
|
984,922 -> 984,426
|
||||||
|
616,572 -> 307,881
|
||||||
|
323,806 -> 700,806
|
||||||
|
595,547 -> 595,651
|
||||||
|
731,638 -> 731,582
|
||||||
|
760,836 -> 31,107
|
||||||
|
768,377 -> 347,798
|
||||||
|
847,765 -> 431,765
|
||||||
|
777,95 -> 777,837
|
||||||
|
832,330 -> 460,330
|
||||||
|
423,213 -> 423,110
|
||||||
|
937,549 -> 937,882
|
||||||
|
529,735 -> 570,735
|
||||||
|
436,343 -> 771,343
|
||||||
|
965,833 -> 965,143
|
||||||
|
518,484 -> 65,31
|
||||||
|
940,989 -> 940,293
|
||||||
|
983,63 -> 63,983
|
||||||
|
237,733 -> 237,735
|
||||||
|
624,281 -> 624,330
|
||||||
|
473,719 -> 633,719
|
||||||
|
312,489 -> 872,489
|
||||||
|
369,520 -> 539,520
|
||||||
|
80,705 -> 133,652
|
||||||
|
659,289 -> 163,785
|
@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import re
|
||||||
|
|
||||||
|
def main():
|
||||||
|
content = open('input', 'r').readlines()
|
||||||
|
content = list(map(str.strip, content))
|
||||||
|
for line in content:
|
||||||
|
m = re.match('^(\d+),(\d+) -> (\d+),(\d+)')
|
||||||
|
x1, y1, x2, y2 = m.groups(1)
|
||||||
|
print(f'going from {x1},{y2} to {x2},{y2}')
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in New Issue