about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2020-12-22 14:07:38 +0100
committerLeah Neukirchen <leah@vuxu.org>2020-12-22 14:07:38 +0100
commit9d5dc149e62a16a73d2c8371eac307807da7ecd0 (patch)
treee6db6d3465f93e73273923a0c9b91eca0582f9aa
parent914b4f19b4351f9777631cec48f5b065234cbb61 (diff)
downloadadventofcode2020-9d5dc149e62a16a73d2c8371eac307807da7ecd0.tar.gz
adventofcode2020-9d5dc149e62a16a73d2c8371eac307807da7ecd0.tar.xz
adventofcode2020-9d5dc149e62a16a73d2c8371eac307807da7ecd0.zip
day20
-rw-r--r--day201727
-rw-r--r--day20.clj54
2 files changed, 1781 insertions, 0 deletions
diff --git a/day20 b/day20
new file mode 100644
index 0000000..4496566
--- /dev/null
+++ b/day20
@@ -0,0 +1,1727 @@
+Tile 1237:
+######..#.
+...##.#..#
+....#..#..
+.#.#......
+#..##.....
+#.#..#..#.
+......#..#
+#.....#...
+..........
+..#.#.....
+
+Tile 2113:
+.##.####.#
+.##.#.#.##
+#....#...#
+........#.
+##.##.#.##
+..#.#.....
+#.##....#.
+.##.......
+.......#.#
+##..##.#..
+
+Tile 3089:
+....###..#
+##...#..#.
+.....#.#..
+...#.....#
+..........
+#........#
+##.##..#.#
+....###...
+#.#....#..
+#####..#..
+
+Tile 1217:
+#..#...###
+#.#.......
+.......###
+#.........
+....#....#
+#..#....##
+#.......##
+#........#
+#.#..#..#.
+##....##.#
+
+Tile 2129:
+.###.##.##
+##.......#
+#....#....
+#......#.#
+#..#.#..##
+#.......#.
+##....####
+..#.....##
+#........#
+...##.####
+
+Tile 1861:
+##.##..#..
+...#.#...#
+#....#....
+......##.#
+...#.....#
+.........#
+##....#...
+##...#....
+.#...#.##.
+#.#.###...
+
+Tile 3907:
+.#.#.#...#
+........##
+##.......#
+#......#..
+#......##.
+..#......#
+#.#..#....
+...#....#.
+.......#..
+.#.####.##
+
+Tile 1549:
+##.#......
+....#.#.##
+...#.....#
+..........
+..#......#
+...##....#
+..........
+#.......#.
+##...#...#
+.###.##..#
+
+Tile 2699:
+..####...#
+.##.#..###
+..#..##.##
+#.#.#...##
+#.....#...
+#.......##
+###...#..#
+.....#....
+#........#
+.#.###....
+
+Tile 2593:
+.#....#...
+....#.#...
+....##....
+##...#...#
+...#....##
+#...#..#.#
+..##.#..#.
+..####....
+.#..#..#..
+...###.##.
+
+Tile 3209:
+.#..#....#
+.....#...#
+#.........
+..........
+#.........
+.....#..#.
+#.........
+##........
+..#.......
+#.#.....##
+
+Tile 1789:
+###..#..#.
+#.#..##.##
+#...##...#
+#.........
+..#.#.....
+..####..##
+#.#..###..
+......####
+#....####.
+..##.#..##
+
+Tile 2111:
+#.##.#.###
+.#..#....#
+.#.#..#...
+#.......#.
+.......#..
+#......#.#
+#.........
+.....#...#
+##.....#..
+..##.#..##
+
+Tile 3137:
+.####..##.
+##.##....#
+#....#....
+#.........
+..#...#.#.
+#.#..##.#.
+..#...#..#
+..#..#.#.#
+.......###
+#.##...###
+
+Tile 1871:
+#.####....
+#....#....
+......#..#
+#.......##
+##.#....##
+..#..#....
+#..#...#..
+#.#...#.##
+#.##.....#
+.##.....##
+
+Tile 3119:
+######.##.
+..#..##..#
+.......##.
+#...#.#..#
+..#...#...
+#..#....#.
+#....#....
+#......#.#
+#.........
+......#.##
+
+Tile 1579:
+.#.#.#....
+#..#.....#
+###.....#.
+..#.#....#
+####......
+#.#......#
+.......#..
+...#.....#
+.#####...#
+#..#....##
+
+Tile 1249:
+#...####..
+#.........
+...#.....#
+#......#.#
+....##....
+#..#..##.#
+#..#.....#
+....#.#...
+#.#....#..
+.##...#.#.
+
+Tile 1319:
+....#.####
+#.#..#.#.#
+#......#..
+..#.#.#..#
+..#....#.#
+##....#.#.
+###...#...
+###......#
+..#..#..##
+..#.#..##.
+
+Tile 1987:
+.#...####.
+...#...###
+...##...##
+..#..#..#.
+##.....#..
+#..#....##
+.#.....#.#
+#......#..
+##......#.
+..###...#.
+
+Tile 2963:
+.##.#####.
+#.##...##.
+#..##.....
+..#......#
+..##.....#
+.#..#..#.#
+..........
+#...#..##.
+...#......
+##..#####.
+
+Tile 1609:
+..##..###.
+.....#..#.
+.....#....
+##....#...
+###..#...#
+##....#..#
+......##..
+..#..###..
+#....#.#..
+...##....#
+
+Tile 2267:
+...#.#..#.
+..##....##
+####..#.##
+....#.##.#
+##..#.....
+..##.#....
+#.##...###
+#..##.###.
+..........
+..#..##...
+
+Tile 1531:
+#.#..##..#
+#........#
+#.....####
+....#...##
+#.....##.#
+#.........
+......##.#
+.#.#..#..#
+.........#
+#..#.#.#.#
+
+Tile 2357:
+.......#..
+...#..#...
+.......#..
+.#...#.###
+#.####...#
+.#.#.....#
+#.#.....#.
+.###..##.#
+#.#.#...#.
+##.#.#####
+
+Tile 1373:
+.#.....###
+..#...##..
+..#......#
+...#...#.#
+.#..#.#..#
+......#...
+#...##..#.
+#...#..##.
+...#......
+##.#.#...#
+
+Tile 3373:
+...##.#.##
+#.........
+....#....#
+#..###...#
+#...#...##
+......#.##
+........#.
+.......##.
+#..#...#..
+.##..#.#..
+
+Tile 1831:
+...#####.#
+#........#
+#.....#..#
+#.#...###.
+...#.##..#
+..##.....#
+..#....#..
+......##.#
+##...#....
+##.###.#.#
+
+Tile 3607:
+#...#.#...
+.#...##.##
+.#.......#
+..####....
+####....#.
+.#.#...#.#
+###...##..
+#......#..
+###.#..#.#
+##.##..###
+
+Tile 3251:
+##.#..##..
+.#....##.#
+#.......#.
+..#..#..#.
+#..##....#
+#...##..##
+.....#..##
+...#...##.
+....##....
+#####...##
+
+Tile 3917:
+.##.......
+.#..#...#.
+....##...#
+#.#..##.##
+.#.#...#..
+..#.......
+.....#..#.
+.#..#.#..#
+...##..#.#
+##..#...##
+
+Tile 1489:
+.##..##.#.
+##...#.#.#
+#.......#.
+##.#.....#
+.#...##..#
+..#.......
+.#..#....#
+###..#..##
+#..##.....
+#######...
+
+Tile 3253:
+#..#..####
+....#..#..
+#.##..#...
+.##....###
+........##
+..........
+#...#.....
+##...#...#
+...##.....
+.##..##.#.
+
+Tile 2081:
+.......##.
+#...#....#
+#..#....##
+##....##..
+#.#.###...
+.....#....
+#...###.##
+##..##....
+#........#
+.#...#..#.
+
+Tile 1481:
+######..#.
+###.#....#
+.....#...#
+#.........
+#..#....##
+#........#
+..........
+#...#....#
+#..#.##...
+#####..##.
+
+Tile 2953:
+..##.#####
+#.#..#..##
+..#....#.#
+#...#.#...
+#..##....#
+#.#....#.#
+.......#.#
+#..##.....
+#.#.....##
+...##..#.#
+
+Tile 1783:
+.#..#.#.##
+#...#....#
+...#......
+#.#.#..#.#
+.........#
+......#...
+.#...#..##
+..#...#.#.
+#..#..#..#
+...#..#.##
+
+Tile 2269:
+#.#.##..#.
+#.....##..
+.#.......#
+..#..#...#
+....#.....
+..........
+##.##....#
+.....#....
+##.....###
+.#.#####.#
+
+Tile 1277:
+..##..#...
+#...#.....
+.......#..
+...#......
+....#....#
+..#.......
+#......#..
+.#........
+#.........
+###.###...
+
+Tile 2633:
+####.#.#..
+......#.#.
+........#.
+#.........
+...#...###
+...#.....#
+.##.#..#.#
+.#........
+#.#......#
+.##.##.#.#
+
+Tile 3919:
+###..###..
+...#......
+...##.#..#
+#...#..#.#
+.........#
+...#.#.#..
+...#.#....
+#....#...#
+.#.###..##
+.#.#.##...
+
+Tile 1753:
+#...##....
+#.....#...
+..........
+.#..#.....
+#.......##
+..#.......
+......#..#
+#..####...
+....#..#.#
+..#.####..
+
+Tile 3739:
+.##.#.#..#
+###.##.##.
+##.###.#..
+.#....#..#
+#...##....
+#..#......
+#....###.#
+..#.......
+###....#.#
+...###..#.
+
+Tile 3701:
+.####..#.#
+#.....#...
+.#........
+.........#
+...#.#....
+#.#.......
+#...#....#
+.###.#.##.
+#.#.......
+##.##..##.
+
+Tile 3631:
+#..#..###.
+.........#
+#...##....
+.......#.#
+.....#....
+...#..#..#
+........#.
+..#....#.#
+......#...
+##.#..#.#.
+
+Tile 2389:
+..#.##...#
+###.......
+#..##...##
+#.######..
+..#..##...
+.#...#...#
+.....#...#
+#..#....#.
+..#...##..
+#...#..##.
+
+Tile 1123:
+.##.#.###.
+#........#
+#.........
+#.....##.#
+....#.....
+....##.#.#
+....#....#
+#.#.#..#.#
+#..#.....#
+#.#..#..#.
+
+Tile 2659:
+#.##.#.##.
+.#........
+#....#..##
+###..##.##
+#.#.###..#
+#...##...#
+...#...#..
+...#..#...
+..#.#.#..#
+####...#..
+
+Tile 3709:
+.##...#.##
+..#..##..#
+......#.##
+......#..#
+....#.....
+..........
+#......#.#
+#....##..#
+.....##..#
+####.##...
+
+Tile 2887:
+######..##
+#.........
+.......#.#
+...#.#....
+#....##...
+#...#....#
+...#.#...#
+#....#...#
+##....#..#
+#########.
+
+Tile 1367:
+#.####.###
+#......#.#
+..........
+#....#....
+.#......#.
+#.........
+...#.#.#..
+......#...
+##....#...
+.....##.##
+
+Tile 2221:
+##..#.....
+#.....#...
+.........#
+#..#......
+#.#...#...
+###......#
+...#.....#
+#........#
+#.....#...
+..##.###..
+
+Tile 2621:
+##..#.###.
+.......###
+.........#
+..#.#...#.
+..........
+....#.....
+#.##..##..
+......#..#
+....#...#.
+##.#.....#
+
+Tile 2503:
+..#.##.##.
+......#...
+#.#..#....
+....#....#
+#.....#...
+..#......#
+##...#..#.
+#....#..#.
+...#......
+#....####.
+
+Tile 3491:
+#..#.###..
+#.........
+#..#..#..#
+###....###
+#.#.##....
+#........#
+......#...
+##...#...#
+##........
+.#.#.##.##
+
+Tile 2333:
+..##.....#
+.....#..#.
+#.#.#..#.#
+##.##...#.
+..#.#.....
+...#.....#
+..###..#..
+###.....##
+#........#
+##.####.#.
+
+Tile 2399:
+.....#.##.
+##.....#.#
+##.......#
+.#.#..##.#
+#...##...#
+###.#....#
+#......#..
+##......#.
+#.#....#..
+.....#.#..
+
+Tile 2683:
+#.##..##..
+.#....#..#
+.........#
+.......#.#
+.##.#..##.
+.....##..#
+#....##..#
+....##.#.#
+...###.###
+.#.##.#.##
+
+Tile 1741:
+.##..#.#.#
+.##....#..
+##..#.....
+##...###..
+......#..#
+#.....#...
+.......#..
+#.....#...
+...##..#.#
+#..###.##.
+
+Tile 3539:
+.###....##
+..........
+.##.#...#.
+.....#...#
+.........#
+.........#
+.......#..
+..#.....#.
+.#.#.###.#
+#.#.####.#
+
+Tile 3929:
+##..######
+.#..##.###
+#.##....#.
+...##..#.#
+#...#.....
+........#.
+.....#...#
+#...#.#..#
+.#.#.....#
+..##.#..#.
+
+Tile 3221:
+..####..#.
+##......#.
+..#..#.###
+##........
+....#....#
+.#...#...#
+#.#...#..#
+##....#..#
+##......#.
+.#..#..##.
+
+Tile 1117:
+.##.##.#.#
+##.....###
+#.#.#.##..
+..#....#..
+##....#...
+...#..##.#
+..#.#.#..#
+...#...#.#
+....##...#
+.###.#..##
+
+Tile 3163:
+.####.#.#.
+#.........
+..........
+......#..#
+....##.#..
+.#....#..#
+.....####.
+#....#.#..
+...#.#..##
+##.#.#....
+
+Tile 1129:
+.....##...
+##......##
+#..#..#..#
+..#....#..
+#.#...#...
+....#.##..
+...#...#..
+#.........
+#..#..#.#.
+#.#..###.#
+
+Tile 3079:
+###..#.##.
+....###...
+##..#....#
+....##...#
+......##..
+....#....#
+#.#.#.....
+#...#....#
+.#........
+.##.#.###.
+
+Tile 2039:
+.#.#.##..#
+..##......
+.##.......
+#.........
+....#...##
+#..#.#...#
+..........
+#.....#..#
+####..#..#
+.#..#..##.
+
+Tile 1901:
+####.#.##.
+#.#...##..
+...#....##
+..........
+#.........
+#...##...#
+..........
+##......##
+.#.....#..
+.###.##...
+
+Tile 2029:
+####..##..
+##...#....
+.#....##.#
+..#....##.
+#........#
+..........
+..........
+#..#..#...
+#..#....##
+....####..
+
+Tile 1879:
+##..#.##.#
+#...#...##
+.##...#.##
+.#.#.....#
+.##.#..#.#
+#..##.....
+#..##...#.
+......#.##
+...#..#..#
+#....#..#.
+
+Tile 3347:
+###..#..##
+.#..#....#
+.#...#...#
+....#....#
+.#......##
+......##.#
+.....#..##
+.........#
+#......#..
+.####.#..#
+
+Tile 2417:
+####.#..##
+...#.#....
+.#....#..#
+.#........
+#.........
+.....#....
+#..##.....
+#..#...#.#
+#..#.##..#
+..##..####
+
+Tile 2897:
+...#..#.##
+#.#.......
+.........#
+#.#.#..#..
+..#.......
+.........#
+.##...#..#
+....#..###
+.###...##.
+.#.#.#.#..
+
+Tile 2837:
+.#....###.
+.......#..
+......#..#
+#..#..#.##
+#.#.##...#
+#...#....#
+...##.#.#.
+#.....#..#
+#.#.....#.
+#####.####
+
+Tile 3001:
+##....#..#
+#....#.#..
+.....##..#
+.....##..#
+...#......
+#.....#..#
+#.#...##.#
+.#...#...#
+........#.
+###.####.#
+
+Tile 2153:
+.####.##..
+#..#.....#
+..#....#..
+#......#.#
+.........#
+.###.....#
+#.##.....#
+#..#......
+#.#.......
+.######..#
+
+Tile 2749:
+..##.###..
+#..#...#..
+..##.....#
+###.......
+#..##.....
+......#..#
+..#..##...
+.###.....#
+#.#.......
+...#..#..#
+
+Tile 2791:
+..##.##.#.
+.##.###.#.
+.#..#....#
+.##..#.#.#
+#..#....#.
+......##..
+#.##.#.#.#
+##...#.##.
+.#...#.#..
+...#.#...#
+
+Tile 2707:
+..###...##
+.#....#...
+..#...##..
+#.#.......
+....#....#
+#.....#...
+.........#
+##.....###
+#........#
+#.##.#####
+
+Tile 2969:
+..#####..#
+..........
+#.....#..#
+....#.#..#
+...#......
+..##.#...#
+...#.#....
+...#.....#
+..#.......
+####..##.#
+
+Tile 3329:
+#.###..#..
+...#....#.
+........#.
+.........#
+###.#..#.#
+.#.......#
+.........#
+.......#..
+#....##..#
+##.###.#..
+
+Tile 3989:
+.#####.###
+#....#.#..
+.........#
+.........#
+##.#...#.#
+......#..#
+...#.....#
+###......#
+.#.......#
+.###.##.#.
+
+Tile 3583:
+..#..#.#..
+.#........
+###...##..
+##.....#..
+##.......#
+#.........
+#.........
+#...#..#.#
+##.#......
+#.........
+
+Tile 3931:
+....#..#..
+#.#.#.....
+..#..#..#.
+.##...##.#
+.......#.#
+.........#
+....#...##
+......#..#
+#.#....#..
+#.#.#.##.#
+
+Tile 1493:
+####..##.#
+..........
+....#..#..
+##...####.
+#.........
+#.........
+.#.#.....#
+....##...#
+......##..
+.#########
+
+Tile 1013:
+#.###....#
+....####.#
+...#.####.
+.......##.
+.#..#....#
+#.........
+#......#..
+...#...#..
+#.....#...
+#.#.#####.
+
+Tile 2089:
+.#...#.##.
+..#...#..#
+........#.
+...#.#..#.
+.....##..#
+#...###...
+#....#.#..
+#....#..#.
+#...###..#
+........##
+
+Tile 1613:
+#.#...####
+#.....#...
+#....##..#
+#....#....
+.#....#...
+#........#
+......#.#.
+#.....#...
+##...#...#
+....#..##.
+
+Tile 3331:
+.#.#.#####
+.....#...#
+.......#..
+##..#...#.
+#........#
+......#..#
+..#.#....#
+.......#..
+..#.......
+###.###..#
+
+Tile 3217:
+..#.###...
+#.##......
+..#...##..
+...#.##..#
+###...###.
+#...#.#.#.
+##.#...#..
+.........#
+.....##...
+##.###....
+
+Tile 3011:
+#.##.#....
+....#...##
+..........
+#........#
+#....#...#
+#..#......
+..........
+.........#
+....##....
+##.####...
+
+Tile 1171:
+###..###.#
+..#.....##
+##.#...#..
+.#.......#
+..........
+##.....##.
+.##.....##
+..#...####
+##.##..#.#
+#.#.#.#...
+
+Tile 1933:
+#####..#..
+#.#.#.#...
+#.#.......
+#.#.#.....
+.....#...#
+#.#.......
+..........
+...#..#...
+.##....#..
+......#...
+
+Tile 2141:
+#.###...#.
+#.....#...
+.........#
+.....#..#.
+#.###.....
+#..###.#..
+.....#..#.
+....#....#
+.#.......#
+...##..##.
+
+Tile 1031:
+###...#..#
+#.......#.
+##.#..#..#
+##..#.....
+#...#.....
+##....#...
+#......##.
+#.........
+......#..#
+....#..##.
+
+Tile 2857:
+#.#..#...#
+#........#
+##.#..#.##
+....#.##..
+....#...##
+#...#.....
+#..#......
+.......###
+#...####.#
+.#...####.
+
+Tile 3313:
+.#......##
+...##.....
+.#.##.....
+#.#.#.....
+#.#..#....
+..#.......
+#..#.#...#
+#.#......#
+##...#....
+..###.##.#
+
+Tile 1303:
+#.##.#....
+#.......##
+...#...##.
+....##...#
+.....#...#
+.........#
+#..#...#.#
+##...##...
+...#.#.#..
+....##..##
+
+Tile 3457:
+#...#.#..#
+.........#
+#.#..#...#
+.....#.#..
+........##
+...#......
+..##.##...
+..........
+....#....#
+#...#..#.#
+
+Tile 3643:
+##.##..###
+..#.#....#
+..##.....#
+..#.......
+#.........
+#.........
+#.......#.
+......#..#
+.#......#.
+.###..##.#
+
+Tile 2803:
+#...#..##.
+##....#.##
+.#.......#
+#...###...
+#...###..#
+#..#......
+.......#.#
+#.......#.
+...##.....
+..#..##.##
+
+Tile 2549:
+.#....####
+.#........
+.....###..
+.....#..##
+..#.###...
+......#...
+.........#
+.......##.
+#......#.#
+..###.####
+
+Tile 3571:
+#..#.##...
+...#....#.
+..##..##..
+....#.##.#
+.#.....#..
+.##...#...
+.##......#
+#.#......#
+......#...
+.#..#..#..
+
+Tile 1327:
+#..###...#
+#....#...#
+#.##...#.#
+#.......#.
+#.#...#..#
+.........#
+##........
+....#..#..
+.....#..#.
+.#.###..##
+
+Tile 2833:
+##...#..#.
+##....#..#
+##.#.....#
+.......#..
+###...#..#
+.........#
+#.#....###
+....##.#..
+..#...#...
+..#.#.#.##
+
+Tile 1997:
+##..#...##
+#...#.....
+#.....#...
+.......#..
+.......#.#
+#.........
+#......#..
+.........#
+..#.#.#..#
+.###.##..#
+
+Tile 3673:
+..#..###..
+.#..##....
+#.##.....#
+.####..###
+##..#..#..
+#.#.#...##
+.#....#.#.
+....#.##..
+#...#....#
+..#.##....
+
+Tile 3323:
+.#...#####
+#..#...#.#
+..........
+#....#...#
+.#........
+#........#
+##......##
+...##...#.
+...#.#..##
+#.##.###.#
+
+Tile 1619:
+#..###.###
+#...##...#
+.#........
+#.#.....#.
+#.##.....#
+#......#..
+.......#..
+#####.#..#
+..........
+####...#..
+
+Tile 2477:
+.##.##..#.
+#.#.#.....
+......#..#
+......#.#.
+##.##.....
+.###.#..#.
+.........#
+...#.#....
+#.....#...
+...##.#...
+
+Tile 3389:
+#...#.#.##
+##.#.....#
+......#..#
+#..#.#...#
+#....#..#.
+##......##
+....#...##
+#.##..##..
+#........#
+...##.#.##
+
+Tile 1193:
+.##...###.
+#...##..#.
+###.......
+#.#..#....
+.#..#.#...
+#..##....#
+#.#..##...
+####.....#
+#...#..#..
+..##.....#
+
+Tile 3767:
+#...#.....
+...#.#..#.
+#######...
+...#.#....
+#.........
+.#....##..
+#.#.......
+.#.#.#..#.
+..#.###..#
+....##.#..
+
+Tile 3191:
+#.##...#..
+..........
+......####
+#..#..#...
+....#.#.##
+......#.#.
+.....#....
+.#....##.#
+..#..#.#.#
+#...##.#.#
+
+Tile 3049:
+#...#...#.
+.#..#....#
+##.#.....#
+...#...##.
+#.##.....#
+.....#.#..
+..##..##..
+..........
+#....#.#.#
+#.##.#..#.
+
+Tile 1747:
+###....#..
+....#..#.#
+.......#..
+........#.
+#..#......
+.......###
+...#.##...
+.....#..##
+.#....#...
+.##..####.
+
+Tile 1429:
+...#.#.#..
+.#...#....
+..........
+##........
+#.........
+#..#.#....
+.##.......
+.#........
+.##.#.#..#
+#####.##.#
+
+Tile 2909:
+#.##.###..
+#..#.....#
+#...#.....
+.#..#.##..
+#.#.....#.
+#...#...##
+...#...#..
+.##.....##
+##..#..#.#
+#.###..###
+
+Tile 1973:
+#####.#.#.
+...#.....#
+#.........
+#........#
+.....###..
+..........
+.#.....#.#
+.##..#.##.
+##.#..#...
+#.##...#.#
+
+Tile 3449:
+.#.#.#..#.
+#...#.#...
+..#.##....
+#...###...
+.....#...#
+#.......#.
+##....#.##
+......#..#
+#.......#.
+..####....
+
+Tile 3371:
+##.#..#.#.
+#...##...#
+##...##...
+.#....#...
+#...##...#
+..#......#
+......#..#
+##.###...#
+#....#...#
+.##....#..
+
+Tile 1103:
+####..#..#
+.......#..
+#......#.#
+..........
+.#....##..
+.#.##...##
+##....##.#
+..#..#.###
+..........
+.#.#...#.#
+
+Tile 1723:
+.#....###.
+...#.#...#
+..#.#.....
+#####....#
+.#.#......
+....#..#..
+..#.......
+..##...#.#
+....###...
+...##.#.#.
+
+Tile 1093:
+..##.#.###
+.##.......
+#....#....
+.#.....#..
+#.......##
+.........#
+.#......##
+#......#.#
+#..#.#...#
+#.#####.#.
+
+Tile 1321:
+#.#.###.#.
+.#..##..#.
+#.###..#..
+#..##....#
+#.......#.
+....#....#
+#....#...#
+.....#....
+#.###.....
+.###...##.
+
+Tile 1979:
+#####.###.
+#.#..#..#.
+#.####....
+###.....##
+....#.....
+#.........
+###.#..#.#
+..##...###
+#.......##
+..#.......
+
+Tile 2677:
+##..#.##.#
+#.##.....#
+#..#...#.#
+..#.#.#..#
+##.#..#..#
+.....#..#.
+#...#...##
+...#...###
+##.#...#..
+.###..##..
+
+Tile 1553:
+.#...###..
+.........#
+###.......
+##..#...#.
+..#...##.#
+..##......
+.##.......
+...#..#...
+#....##...
+#####.#...
+
+Tile 3187:
+###..#..#.
+#.....#...
+.....#..##
+#.....#..#
+..#......#
+##...#....
+......##.#
+......#...
+#.#..#....
+########.#
+
+Tile 2243:
+##.####...
+..#.#.#..#
+#..#......
+.........#
+....#...##
+#.........
+#......#.#
+....#....#
+......#.##
+##.#....#.
+
+Tile 1423:
+..#..##..#
+..#....#.#
+#.#.....##
+##.......#
+.#..#..#..
+......##..
+##...##...
+.....##..#
+...#.#.#.#
+##...###..
+
+Tile 3319:
+##.##.#.#.
+#.......#.
+....#.....
+###....###
+........#.
+###.......
+.#.....##.
+#...#....#
+..#.......
+.##...####
+
+Tile 3343:
+.#...#####
+..........
+.###...#.#
+.##.......
+..........
+##....####
+#......#.#
+#.#.###..#
+..#.......
+.#####..#.
+
+Tile 2789:
+##....####
+.##.......
+#......#.#
+.#.##.....
+#......#.#
+#........#
+##......#.
+.#...##...
+#.....##.#
+...###.#..
+
+Tile 3623:
+##..#..#.#
+#.....#.#.
+##.....#.#
+.#...##..#
+.#.......#
+..#...#..#
+.#..#..##.
+###..#.###
+.#.##.#..#
+.#.##.#.#.
+
+Tile 1439:
+.#..#.#.#.
+....#.....
+.........#
+#..#......
+##..#....#
+#.#.#.##..
+##.#.#...#
+#.........
+#.......#.
+####...#.#
+
+Tile 1361:
+#.#...###.
+#.........
+....#.....
+..#.......
+......#..#
+##....##.#
+.##..#..##
+..#......#
+.....##..#
+#..#....#.
+
+Tile 1823:
+.##.#.#...
+#.........
+#..#.##.#.
+#...##....
+##........
+#...#.#.##
+#........#
+.........#
+........#.
+#.###...#.
+
+Tile 2971:
+.#.......#
+#.#....#..
+#..#.#....
+...#..#...
+##....#...
+#..#......
+.........#
+....##....
+#...###..#
+#...#.#.#.
+
+Tile 3229:
+..###.####
+#........#
+.#.......#
+..........
+##.......#
+#..#......
+.#.#......
+#.....##.#
+.#......#.
+.#####.#.#
+
+Tile 1907:
+####.#.#..
+....#....#
+#....#....
+#.........
+#...#..###
+...#.#.#.#
+....##....
+#.###..###
+..#..##.##
+..##.##...
+
+Tile 1699:
+..#..##...
+.#..#.#...
+.....#...#
+.#.#.#...#
+........#.
+##.....#..
+#.#......#
+.##......#
+....###.#.
+...##..###
+
+Tile 2131:
+#..#####..
+#....#...#
+#..####..#
+......#..#
+#.#..#...#
+#.#...#..#
+..##......
+#.#####..#
+......#..#
+#...####.#
+
+Tile 1657:
+..#..##.#.
+#....##...
+##..#....#
+#........#
+#.........
+#.......##
+#......###
+#.#.#...##
+........##
+#.##.#.##.
diff --git a/day20.clj b/day20.clj
new file mode 100644
index 0000000..017d829
--- /dev/null
+++ b/day20.clj
@@ -0,0 +1,54 @@
+(def tiles
+  (->> (clojure.string/split (slurp "day20") #"\n\n")
+       (map (fn [x]
+              (let [[name & data] (clojure.string/split-lines x)]
+                {(read-string (first (re-seq #"\d+" name)))
+                 (vec data)}
+                )))
+       (into {})))
+
+;; clockwise
+(defn borders [tile]
+  [(first tile)
+   (apply str (reverse (first tile)))
+
+   (apply str (map last tile))
+   (apply str (reverse (map last tile)))
+
+   (last tile)
+   (apply str (reverse (last tile)))
+
+   (apply str (map first tile))
+   (apply str (reverse (map first tile)))
+   ])
+
+(def tile-borders
+  (into {} (for [[k v] tiles] [k (borders v)])))
+
+(def corners
+  (filter
+   (fn [x]
+     (= 2 (count
+           (remove empty?
+                   (for [y (keys tile-borders) :when (not= x y)]
+                     (clojure.set/intersection (set (tile-borders x))
+                                               (set (tile-borders y))))))))
+   (keys tile-borders)))
+
+(apply * corners)  ; => 29584525501199
+
+;; too lazy to do part2, guess it instead:
+
+(defn count-hashes [tile]
+  (->> (rest (butlast tile))
+       (map (comp rest butlast))
+       flatten
+       (filter #{\#})
+       count))
+
+(apply + (map count-hashes (vals tiles))) ;; => 2175
+
+;; grep '#\.\.\.\.##' day20 | wc -l
+;; 41
+
+(- 2175 (* 15 34)) ;; => 1665