Adding the first 3 days and readme.
parent
8a64323207
commit
1dfbb13f25
@ -0,0 +1,3 @@
|
||||
# AOC 2020
|
||||
|
||||
Doing it in OCaml because Jay is a masochist
|
@ -0,0 +1,29 @@
|
||||
let get_one_line file =
|
||||
try Some (input_line file) with
|
||||
End_of_file -> None
|
||||
|
||||
let get_lines file =
|
||||
let rec input lines =
|
||||
match get_one_line file with
|
||||
Some line -> input (line :: lines)
|
||||
| None -> List.rev lines
|
||||
in input []
|
||||
|
||||
let find_pair_and_prod items total =
|
||||
let len = List.length items in
|
||||
|
||||
let rec check idx =
|
||||
let left = List.nth items (idx mod len) in
|
||||
let right = List.nth items (idx / len) in
|
||||
|
||||
if left + right == total
|
||||
then left * right
|
||||
else check (idx+1)
|
||||
in check 0
|
||||
|
||||
let file = "day1_1.txt"
|
||||
let channel = open_in(file)
|
||||
let lines = get_lines channel
|
||||
let ints = List.map int_of_string lines
|
||||
let prod = find_pair_and_prod ints 2020;;
|
||||
Printf.printf "%i" prod
|
@ -0,0 +1,200 @@
|
||||
1749
|
||||
1897
|
||||
881
|
||||
1736
|
||||
1161
|
||||
1720
|
||||
1676
|
||||
305
|
||||
264
|
||||
1904
|
||||
1880
|
||||
1173
|
||||
483
|
||||
1978
|
||||
1428
|
||||
1635
|
||||
1386
|
||||
1858
|
||||
1602
|
||||
1916
|
||||
1906
|
||||
1212
|
||||
1730
|
||||
1777
|
||||
1698
|
||||
1845
|
||||
1812
|
||||
1922
|
||||
1729
|
||||
1803
|
||||
1761
|
||||
1901
|
||||
1748
|
||||
1188
|
||||
1964
|
||||
1935
|
||||
1919
|
||||
1810
|
||||
1567
|
||||
1849
|
||||
1417
|
||||
1452
|
||||
54
|
||||
1722
|
||||
1784
|
||||
1261
|
||||
1744
|
||||
1594
|
||||
1526
|
||||
1771
|
||||
1762
|
||||
1894
|
||||
1717
|
||||
1716
|
||||
51
|
||||
1955
|
||||
1143
|
||||
1741
|
||||
1999
|
||||
1775
|
||||
1944
|
||||
1983
|
||||
1962
|
||||
1198
|
||||
1553
|
||||
1835
|
||||
1867
|
||||
1662
|
||||
1461
|
||||
1811
|
||||
1764
|
||||
1726
|
||||
1927
|
||||
1179
|
||||
1468
|
||||
1948
|
||||
1813
|
||||
1213
|
||||
1905
|
||||
1371
|
||||
1751
|
||||
1215
|
||||
1392
|
||||
1798
|
||||
1823
|
||||
1815
|
||||
1923
|
||||
1942
|
||||
1987
|
||||
1887
|
||||
1838
|
||||
1395
|
||||
2007
|
||||
1479
|
||||
1752
|
||||
1945
|
||||
1621
|
||||
1538
|
||||
1937
|
||||
565
|
||||
1969
|
||||
1493
|
||||
1291
|
||||
1438
|
||||
1578
|
||||
1770
|
||||
2005
|
||||
1703
|
||||
1712
|
||||
1943
|
||||
2003
|
||||
1499
|
||||
1903
|
||||
1760
|
||||
1950
|
||||
1990
|
||||
1185
|
||||
1809
|
||||
1337
|
||||
1358
|
||||
1743
|
||||
1707
|
||||
1671
|
||||
1788
|
||||
1785
|
||||
1972
|
||||
1863
|
||||
1690
|
||||
1512
|
||||
1963
|
||||
1825
|
||||
1460
|
||||
1828
|
||||
1902
|
||||
1874
|
||||
1755
|
||||
1951
|
||||
1830
|
||||
1767
|
||||
1787
|
||||
1373
|
||||
1709
|
||||
1514
|
||||
1807
|
||||
1791
|
||||
1724
|
||||
1859
|
||||
1590
|
||||
1976
|
||||
1572
|
||||
1947
|
||||
1913
|
||||
1995
|
||||
1728
|
||||
1624
|
||||
1731
|
||||
1706
|
||||
1782
|
||||
1994
|
||||
1851
|
||||
1843
|
||||
1773
|
||||
1982
|
||||
1685
|
||||
2001
|
||||
1346
|
||||
1200
|
||||
1746
|
||||
1520
|
||||
972
|
||||
1834
|
||||
1909
|
||||
2008
|
||||
1733
|
||||
1960
|
||||
1280
|
||||
1879
|
||||
1203
|
||||
1979
|
||||
1133
|
||||
1647
|
||||
1282
|
||||
1684
|
||||
860
|
||||
1444
|
||||
1780
|
||||
1989
|
||||
1795
|
||||
1819
|
||||
1797
|
||||
1842
|
||||
1796
|
||||
1457
|
||||
1839
|
||||
1853
|
||||
1711
|
||||
1883
|
||||
1146
|
||||
1734
|
||||
1389
|
@ -0,0 +1,8 @@
|
||||
main = do
|
||||
contents <- readFile "day1_1.txt"
|
||||
let xs = map read $ lines contents
|
||||
let [(i, j, k)] = [(i, j, k) | i <- [0..(length xs)-1],
|
||||
j <- [0..i],
|
||||
k <- [0..j],
|
||||
(xs !! i) + (xs !! j) + (xs !! k) == 2020]
|
||||
print $ (xs !! i) * (xs !! j) * (xs !! k)
|
@ -0,0 +1,30 @@
|
||||
let get_one_line file =
|
||||
try Some (input_line file) with
|
||||
End_of_file -> None
|
||||
|
||||
let get_lines file =
|
||||
let rec input lines =
|
||||
match get_one_line file with
|
||||
Some line -> input (line :: lines)
|
||||
| None -> List.rev lines
|
||||
in input []
|
||||
|
||||
let find_pair_and_prod items total =
|
||||
let len = List.length items in
|
||||
|
||||
let rec check idx =
|
||||
let one = List.nth items (idx mod len) in
|
||||
let two = List.nth items ((idx / len) mod len) in
|
||||
let three = List.nth items (idx / (len * len)) in
|
||||
|
||||
if one + two + three == total
|
||||
then one * two * three
|
||||
else check (idx + 1)
|
||||
in check 0
|
||||
|
||||
let file = "day1_1.txt"
|
||||
let channel = open_in(file)
|
||||
let lines = get_lines channel
|
||||
let ints = List.map int_of_string lines
|
||||
let prod = find_pair_and_prod ints 202000;;
|
||||
Printf.printf "%i" prod
|
@ -0,0 +1,50 @@
|
||||
let get_one_line file =
|
||||
try Some (input_line file) with
|
||||
End_of_file -> None
|
||||
|
||||
let get_lines file =
|
||||
let rec input lines =
|
||||
match get_one_line file with
|
||||
Some line -> input (line :: lines)
|
||||
| None -> List.rev lines
|
||||
in input []
|
||||
|
||||
(* --- *)
|
||||
|
||||
type password_set = { min : int; max : int; chr : char; pw : string };;
|
||||
|
||||
let line_to_set line = (* convert a line from the file into a password_set *)
|
||||
let [rng; chr; pw] = String.split_on_char ' ' line in (* split on spaces *)
|
||||
let chr = String.get chr 0 in (* strip colon and convert to char *)
|
||||
let [min; max] = List.map int_of_string (String.split_on_char '-' rng) in (* pull out the min and max from the range, map to Int *)
|
||||
{ min; max; chr; pw }
|
||||
|
||||
(* stolen from SO.. *)
|
||||
let explode s = (* convert a string to a list of chars *)
|
||||
let rec exp i l =
|
||||
if i < 0 then l else exp (i - 1) (s.[i] :: l) in
|
||||
exp (String.length s - 1) [];;
|
||||
|
||||
let char_count el str =
|
||||
List.length (List.filter (fun c -> c == el) (explode str))
|
||||
|
||||
let is_valid_day1_password set =
|
||||
let count = char_count set.chr set.pw in
|
||||
(*Printf.printf "%s %c count: %i min: %i, max: %i, in range: %b\n" set.pw set.chr count set.min set.max (count >= set.min && count <= set.max);*)
|
||||
count >= set.min && count <= set.max
|
||||
|
||||
let is_valid_day2_password set =
|
||||
let is_valid = ((String.get set.pw (set.min-1)) == set.chr) <> ((String.get set.pw (set.max-1)) == set.chr) in
|
||||
(*Printf.printf "%s %c min: %i, max: %i, char-at-min: %c, char-at-max: %c, valid: %b\n" set.pw set.chr set.min set.max (String.get set.pw (set.min-1)) (String.get set.pw (set.max-1)) is_valid;*)
|
||||
is_valid
|
||||
|
||||
let file = "day2.txt"
|
||||
let channel = open_in(file)
|
||||
let lines = get_lines channel
|
||||
let sets = List.map line_to_set lines
|
||||
|
||||
let valid_day1_passwords = List.filter is_valid_day1_password sets;;
|
||||
Printf.printf "valid day1 password count: %i\n" (List.length valid_day1_passwords)
|
||||
|
||||
let valid_day2_passwords = List.filter is_valid_day2_password sets;;
|
||||
Printf.printf "valid day2 password count: %i\n" (List.length valid_day2_passwords)
|
@ -0,0 +1,47 @@
|
||||
(* Common util. Should probably put this in a module or something.. *)
|
||||
let get_one_line file =
|
||||
try Some (input_line file) with
|
||||
End_of_file -> None
|
||||
|
||||
let get_lines file =
|
||||
let rec input lines =
|
||||
match get_one_line file with
|
||||
Some line -> input (line :: lines)
|
||||
| None -> List.rev lines
|
||||
in input []
|
||||
|
||||
let read_file file =
|
||||
let channel = open_in(file) in
|
||||
get_lines channel
|
||||
|
||||
let explode s = (* convert a string to a list of chars *)
|
||||
let rec exp i l =
|
||||
if i < 0 then l else exp (i - 1) (s.[i] :: l) in
|
||||
exp (String.length s - 1) [];;
|
||||
|
||||
(* --- *)
|
||||
|
||||
let wrapped_y y map = (* wrap the y (horizontal) coordinate when off the map *)
|
||||
y mod (List.length (List.nth map 1))
|
||||
|
||||
let read_cell map x y = (* return Some char at these coordinates, or None if below the map *)
|
||||
if (x < List.length map)
|
||||
then Some (List.nth (List.nth map x) (wrapped_y y map))
|
||||
else None
|
||||
|
||||
let rec go map position slope count = (* move across the map, counting trees *)
|
||||
let (x, y) = position in
|
||||
let (dy, dx) = slope in (* suddenly regretting having x be the vertical axis.. *)
|
||||
match read_cell map x y with
|
||||
| None -> count (* off the map. stop counting *)
|
||||
| Some '#' -> go map (x+dx, y+dy) slope (count+1)
|
||||
| Some a -> go map (x+dx, y+dy) slope count
|
||||
|
||||
let map = read_file "day3.txt" |> List.map explode
|
||||
let slopes = [(1, 1); (3, 1); (5, 1); (7, 1); (1, 2)]
|
||||
let tree_counts = slopes |> List.map (fun slope -> go map (0, 0) slope 0);;
|
||||
|
||||
List.iter (fun count -> Printf.printf "Number of trees: %i\n" count) tree_counts;;
|
||||
|
||||
let product = List.fold_left ( * ) 1 tree_counts;;
|
||||
Printf.printf "Product: %i\n" product
|
@ -0,0 +1,323 @@
|
||||
....#...............##...#...#.
|
||||
#...#..#.....##.##.#.##....#...
|
||||
...#.....#...#.................
|
||||
#..#..#.......#...#.#..........
|
||||
...##..#.#..........##...#.....
|
||||
........###.#.##..#............
|
||||
...###......##.#..#.#...#.#....
|
||||
......##..#.#....#...#.........
|
||||
.................#......#......
|
||||
..............##....#..........
|
||||
#.....................#...#.#.#
|
||||
.##..#............##...##.##..#
|
||||
.....#.####...#..##......#.#..#
|
||||
#.......#.#..#......##.#.#....#
|
||||
.....##...###.#..........##....
|
||||
#...........#.##....##.....#..#
|
||||
..###..##.##.....#....#........
|
||||
...#.#.#............#.#..#....#
|
||||
#......#....#...##.#.#.#.#..#..
|
||||
.......#.#...#..#..#..##......#
|
||||
.....#..#.............#..#...#.
|
||||
##..#.##.....#........#........
|
||||
....##....#..#...........#...#.
|
||||
.......#........##.......##....
|
||||
..##...#.......#........##.#...
|
||||
..........#..#.....##........#.
|
||||
..#..##..#............#........
|
||||
.#.#...#...#.......#......#....
|
||||
....#....#.....#.#.........###.
|
||||
.............#...#....#..#.#...
|
||||
##.#...#..#......#.#.##.....#..
|
||||
#...##.#..........#..#.#...#...
|
||||
#####.......#.#.....#..#.......
|
||||
#...#...#........#....#...#....
|
||||
......##.#..#..#............#..
|
||||
....#....#.......#...###.......
|
||||
.#......##...#.##....#...#.....
|
||||
..#....#...##.....#.#...##.#...
|
||||
#.......#........#.####........
|
||||
#.##..#..#.........#.#........#
|
||||
.#...#.#.#.#......#....#.#..#..
|
||||
#...####...##.##.#....#......##
|
||||
..#...#......##........#.....#.
|
||||
...#.#....##...................
|
||||
...##................#.........
|
||||
...##.....##........#....#..#..
|
||||
.........#..#.....#............
|
||||
.#..#.......................#..
|
||||
.#.........#..##........#.#.#.#
|
||||
......#.....##..#.##...#..#.##.
|
||||
..#..............##.......#....
|
||||
...............##....#...##..#.
|
||||
###...#..###.........#...#.....
|
||||
...#..#...#....#.....##........
|
||||
....#..##...#........#.........
|
||||
..#......#.......#.....#..#....
|
||||
.#...........##.....###....#...
|
||||
.#..#.....##.........##.....#..
|
||||
....##.#.....#................#
|
||||
..#..#......#.#..#....#..##....
|
||||
#.....#...##............#......
|
||||
.#.............#....#.......#..
|
||||
#.........#..#...##.#...#.#.##.
|
||||
...#......#..####....#.#.....#.
|
||||
......#........#..........##.##
|
||||
......##.#..##.##.....#........
|
||||
##.....#..##.##..#.......##....
|
||||
.##.........#...........#...#..
|
||||
.....#...###..#...#...........#
|
||||
..........#.#......#.###.....#.
|
||||
...#.............#.##......##..
|
||||
#.##.........#..###...........#
|
||||
....#..##....#..#..#........###
|
||||
...#........##.......##..#..#..
|
||||
...#......#..#.#...............
|
||||
#......###....#.#..#.#..#....#.
|
||||
#.#.####.#.........#..#.#.#....
|
||||
.....#....#...............#...#
|
||||
.#........#......#.#...#.......
|
||||
................#...#.....##...
|
||||
.............#...####..........
|
||||
.................##....##.###..
|
||||
#................#......#......
|
||||
.###.#........#..##.....#..###.
|
||||
..#.#..#...#..#.#...#.#.....#.#
|
||||
.....#............#..##..#..#.#
|
||||
#........##.#...#.....#........
|
||||
#.#.#..###......###............
|
||||
...#..#...........##...#.....#.
|
||||
......#........#...#.#....#....
|
||||
....#..........#.#..#.#....##..
|
||||
...#.....##..#......#.#.##...#.
|
||||
.........#..#................#.
|
||||
..#....#.##.....#.......#......
|
||||
...#.....#.......##.##.....#...
|
||||
#...#..............#..###..#...
|
||||
#.#......#.#....#........##..#.
|
||||
...#...##...##..#.........#....
|
||||
..#...#......##.#.#.#....##....
|
||||
#.......#.......#..#..#........
|
||||
.........#..#.....#....#.....##
|
||||
.#......#.......#.#..#..#...#.#
|
||||
..#....#.#..#..................
|
||||
#.....####..........#.#.....#.#
|
||||
.#..#.#.#....#.#.....#.#.......
|
||||
....##......#..#.....#.#.#...#.
|
||||
...##...#......##.#....##.#....
|
||||
..#..##....#...#...........#...
|
||||
.......#........#...##.#.......
|
||||
#.#..#....##.#....##...........
|
||||
.......#............#..##..##..
|
||||
#.#.#.....#....##.#.#.#.....#..
|
||||
##...#...#.......#..#...#.....#
|
||||
##..##.##..........#........##.
|
||||
..............#.....#..#..##...
|
||||
.......#...#.........#....#.#..
|
||||
...#..#..#....#.#....##........
|
||||
..#.......#....#....##.........
|
||||
#...#.....#..#.#...##....#.....
|
||||
.....##..#..##..#..............
|
||||
.....##............#....#.#....
|
||||
..#.....#....##.#.....#..#.....
|
||||
#...#..#..#......#.#.#..##.....
|
||||
.............................##
|
||||
#...#.#................#....#.#
|
||||
.#.#.#....##......###..##......
|
||||
#.....#..#.##.#.#.##...###.....
|
||||
.........#............##..#....
|
||||
.#..#...#....#.....#.#........#
|
||||
...............#......#..#.....
|
||||
...................###........#
|
||||
.###..##..##.......#.#.........
|
||||
#.........#......#....#.#...#..
|
||||
.#.#....#.......#.#..##...##...
|
||||
.#.....#....##.......#.#.....#.
|
||||
.........#...#....#.#..........
|
||||
....###..#..##.#...##....#..#..
|
||||
...#.#..##.#.........###.#..#..
|
||||
#...#...........#....#.........
|
||||
....##...........#.#.#......###
|
||||
#....#...........##..#.........
|
||||
###....#.....#.......#....###..
|
||||
.#.......#....#.#.#.#......#.#.
|
||||
........#...............#.#.#..
|
||||
....#.........#.....#...##.##.#
|
||||
...#............#.............#
|
||||
..........#..#.................
|
||||
........#.....##............#.#
|
||||
..#...##........#...#.....#.#..
|
||||
....#........#.#.#..........#..
|
||||
#.#...#...........#............
|
||||
....#.#...##...........#.....#.
|
||||
...........#.#..#.....#........
|
||||
.....#..#..#..#.....#.#.....#.#
|
||||
#.....#.......#.......#...#....
|
||||
#.........#....#.#........#..#.
|
||||
...#..#.........#.....#..#.....
|
||||
...#..#.............#..........
|
||||
.#.......#..........#.....#...#
|
||||
.....#.#......#.......#....#...
|
||||
...#.....#..#..##....##....#...
|
||||
.#.#.#..#...#.....#....#.......
|
||||
..##.#..........#.....#.#......
|
||||
..#..#.............#...##..##..
|
||||
.#.............#..#....##...#..
|
||||
..#...#.....#.................#
|
||||
..##.......#.....#...#....#....
|
||||
.#..#.##.........#...#.#...#...
|
||||
...##.......##..#.....##.##...#
|
||||
........####.#.........#.......
|
||||
..#.#...##.#..#..#.......##.#..
|
||||
.#..#............###..#..#.....
|
||||
#.....#.#...#.#.......#........
|
||||
..........#......#.#...#...#...
|
||||
..#......#..#..#.#...#.........
|
||||
..###........#.#....#.#...##...
|
||||
.#.....#..#.#......#........#..
|
||||
.#...#..#...#....#.......#..#..
|
||||
..#....#..#.....#.#........#...
|
||||
#..#.#.........#..........#..#.
|
||||
.#.....##....#.........#.#.#.#.
|
||||
#.#...#.....#.#.#....#.#..#....
|
||||
.........#...................#.
|
||||
..#.....#..##...#..........#.#.
|
||||
..............#....#.........#.
|
||||
.#....#.....#..............##..
|
||||
#...#...#.#........##.........#
|
||||
....###....#.#....#.#.........#
|
||||
.....#........#.....##.........
|
||||
.#...##..##..#.........##......
|
||||
............#.....#........#...
|
||||
..#....#.......#......#..#.#.#.
|
||||
#.......#.#...........#..##.#..
|
||||
......#.##......#....#.......#.
|
||||
.....#........#...###.....#....
|
||||
###..........#........#.#.#....
|
||||
.....#...#.#...#...#...##.....#
|
||||
.##...#.#........#.#....#......
|
||||
......#.........#.....#.#......
|
||||
.....#.##.....###.#...#...##..#
|
||||
.#.#.......##....#..#..#.##....
|
||||
.####...###.#.#.#.#............
|
||||
......#..##...#..........#.##.#
|
||||
......#............#...........
|
||||
.....#.#..#.......##...##......
|
||||
......#........#..#....#.#.#.#.
|
||||
#..#..#.....#..#.....#.......#.
|
||||
.#...#.....#..............#....
|
||||
.#....#..#.##.#............####
|
||||
..........#....#.##...#.#......
|
||||
...#.#.#.#.#.......#.........#.
|
||||
##........#..##..#.........#...
|
||||
..#......#...#..#.#.....#......
|
||||
..#.#......#...#...#.#.........
|
||||
........................##.....
|
||||
...#.##.#........#...#.......#.
|
||||
..#.#......#....##........#.#..
|
||||
#......#.##........#..#......#.
|
||||
.....#..#..#.............#.....
|
||||
......#......#........#....#...
|
||||
...#....###.....#..#.#....#....
|
||||
#.......................#....#.
|
||||
..#...#...................#....
|
||||
....#..#.....##.#..#...#.....#.
|
||||
...#.........#...#.......#.....
|
||||
..#....#.....#...#...#.#####...
|
||||
.....####......#...........#...
|
||||
......#.#..........#...#.#.#..#
|
||||
###..#.#....#..#...............
|
||||
...#...###..#..#.#.#...........
|
||||
.....#...#.##.#.#.###..##......
|
||||
.........#...........#....##.#.
|
||||
....#..#......#................
|
||||
...........#..#..#...#.#.......
|
||||
..#.....#......##.###..........
|
||||
.........#...................#.
|
||||
..........#...#.#....##........
|
||||
..#...##....#....#.......#...##
|
||||
#......#.....#...#...#...#.....
|
||||
....##...#.#.......#.#...##....
|
||||
...#.....#....#.....#....#.....
|
||||
#....##.....##..##..........##.
|
||||
.....#.....#.#.#...............
|
||||
.#.##....#.....#.#..#....#..##.
|
||||
.....#.#.....##....#...........
|
||||
.........#..#.......##..##.....
|
||||
..#....##.....###...#....#.#...
|
||||
............#......#.#...#..#..
|
||||
#..##......#.#.##....#.#.......
|
||||
.#.#.....#...#.#.#....#.....#..
|
||||
#....#..#.#....#...#...........
|
||||
......#.#.....#...#.#.#......#.
|
||||
###..#....#.###.............#..
|
||||
..............#####........###.
|
||||
..#..#.#.#.#......#......#.....
|
||||
###.........#.#..........#..#.#
|
||||
.#.........#...#......####.....
|
||||
..#.......####..#....#...#..#..
|
||||
#.#..#.#...............#.#.#.#.
|
||||
###....#.....##.#....#......##.
|
||||
..#..#........#....###.#.#.....
|
||||
...#.#..........#.....#...#....
|
||||
....#......##.#............#..#
|
||||
...##...#.....#..##....#..#.#.#
|
||||
.......#.....#..#....#....##.#.
|
||||
.#..#....#..#......##....##...#
|
||||
..#......#...#.#..###..#.##....
|
||||
#...#.....#......##...#.......#
|
||||
.....#.#.....#...##............
|
||||
.#..##.##..#..##.#........#....
|
||||
....#.#......##...#.#.#.#..##..
|
||||
.#..............##........#....
|
||||
.##....#..#..#....#...#......#.
|
||||
............###....##.......##.
|
||||
..............####.....#.......
|
||||
........##..##.#...#.......#...
|
||||
....#..#.....##.......#####...#
|
||||
.##..##..#.....#...#..#..#....#
|
||||
##..#.#.#...........#..........
|
||||
#..#......#...#....#...........
|
||||
...#..##.#..........#..#.......
|
||||
........#.#.....#......##......
|
||||
.....#....#............#.......
|
||||
.#.#..#....##......#.......###.
|
||||
.#..#.#........#......#...##..#
|
||||
...#....#......#..#........#.##
|
||||
.........#..#...#..#.#.##......
|
||||
....###.#...........#...#......
|
||||
.##............#.......#..##...
|
||||
##...#.#...............#.#...##
|
||||
..#..#.....#.#..#..#...........
|
||||
..#..#.##..#......#.##..#.#....
|
||||
..#...#......#.#...#....##.#...
|
||||
...###....####......#....#...#.
|
||||
.......##........#.....##....#.
|
||||
.........##..........#...#.....
|
||||
.....#............#.##.#....#.#
|
||||
..........#...#....##..........
|
||||
....................#......#...
|
||||
#......#..#...#.............##.
|
||||
...........#...................
|
||||
..#...#.........#.##.#..##.#...
|
||||
#.#....#.#.....#............#..
|
||||
.#..#.....#.....####......#.#..
|
||||
#....#.......##..#...........#.
|
||||
............#...#.....#..#.#...
|
||||
#...........#...#####....#...#.
|
||||
..........#...###..##.........#
|
||||
#.....###............#..#..#.#.
|
||||
...##.....#....#......#.....#..
|
||||
#....#.......#..#......###...#.
|
||||
...##.##......##..##..........#
|
||||
.......#.#..#.#..#.#.#.#..#..#.
|
||||
..#..###...#....#.....#......#.
|
||||
...#.........#..#.##.#.....###.
|
||||
..#.........#.##.#..#..#..###..
|
||||
..####..#.........#.........#.#
|
||||
..#.#...#.......#....##........
|
||||
.#......#.#....................
|
||||
..........#.......#.#..#..#....
|
||||
..#........#....#.#..#.........
|
||||
..#.....#.............#....#...
|
||||
##...#.........#.....#...#.....
|
Loading…
Reference in New Issue