Day20
This commit is contained in:
BIN
day20/c/day20
Executable file
BIN
day20/c/day20
Executable file
Binary file not shown.
220
day20/c/day20.c
Normal file
220
day20/c/day20.c
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
#include <stdint.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define MAX_DIMENSION 1024
|
||||||
|
#define QUEUE_MAX 32*1024
|
||||||
|
#define abs(a) ((a) < 0 ? (-(a)) : (a))
|
||||||
|
|
||||||
|
const int directions[][2] = {
|
||||||
|
{0, 1},
|
||||||
|
{1, 0},
|
||||||
|
{0, -1},
|
||||||
|
{-1, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
#define directions_len (sizeof(directions)/sizeof(directions[0]))
|
||||||
|
|
||||||
|
typedef enum tile {
|
||||||
|
EMPTY,
|
||||||
|
WALL,
|
||||||
|
} tile_t;
|
||||||
|
|
||||||
|
int ospf(tile_t **map, int rows, int colums, int start[2], int end[2]);
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
char c;
|
||||||
|
|
||||||
|
tile_t **map = calloc(MAX_DIMENSION, sizeof(map[0]));
|
||||||
|
int rows = 0, columns, i = 0;
|
||||||
|
map[0] = calloc(MAX_DIMENSION, sizeof(map[0][0]));
|
||||||
|
|
||||||
|
int start[2], end[2];
|
||||||
|
while ((c = getchar()) != EOF) {
|
||||||
|
switch(c) {
|
||||||
|
case '#':
|
||||||
|
map[rows][i] = WALL;
|
||||||
|
break;
|
||||||
|
case '.':
|
||||||
|
map[rows][i] = EMPTY;
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
map[rows][i] = EMPTY;
|
||||||
|
start[0] = rows;
|
||||||
|
start[1] = i;
|
||||||
|
break;
|
||||||
|
case 'E':
|
||||||
|
map[rows][i] = EMPTY;
|
||||||
|
end[0] = rows;
|
||||||
|
end[1] = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
if (c != '\n') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
columns = i - 1;
|
||||||
|
i = 0;
|
||||||
|
rows++;
|
||||||
|
map[rows] = calloc(MAX_DIMENSION, sizeof(map[0][0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
int without_cheats = 0;
|
||||||
|
|
||||||
|
// Shortest path search
|
||||||
|
uint32_t **costs = calloc(rows, sizeof(costs[0]));
|
||||||
|
for (int i = 0; i < rows; i++) {
|
||||||
|
costs[i] = calloc(columns, sizeof(costs[0][0]));
|
||||||
|
memset(costs[i], 255, columns * sizeof(costs[0][0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
int (*queue)[2] = calloc(QUEUE_MAX, sizeof(queue[0]));
|
||||||
|
int queue_num = 1;
|
||||||
|
// Start at 0,0
|
||||||
|
queue[0][0] = start[0];
|
||||||
|
queue[0][1] = start[1];
|
||||||
|
costs[start[0]][start[1]] = 0;
|
||||||
|
|
||||||
|
while (queue_num > 0) {
|
||||||
|
// Pop first
|
||||||
|
int x = queue[0][0];
|
||||||
|
int y = queue[0][1];
|
||||||
|
uint32_t cost = costs[x][y];
|
||||||
|
|
||||||
|
if (x == end[0] && y == end[1]) {
|
||||||
|
without_cheats = cost;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < queue_num - 1; i++) {
|
||||||
|
queue[i][0] = queue[i+1][0];
|
||||||
|
queue[i][1] = queue[i+1][1];
|
||||||
|
}
|
||||||
|
queue_num--;
|
||||||
|
|
||||||
|
// Check each direction
|
||||||
|
for (int i = 0; i < directions_len; i++) {
|
||||||
|
int dx = directions[i][0];
|
||||||
|
int dy = directions[i][1];
|
||||||
|
|
||||||
|
int next_x = x + dx;
|
||||||
|
int next_y = y + dy;
|
||||||
|
|
||||||
|
// Outside of map, into wall, or better path exists
|
||||||
|
if (next_x < 0 || next_y < 0 || next_x >= rows || next_y >= columns || map[next_x][next_y] || costs[next_x][next_y] <= cost + 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert into queue
|
||||||
|
uint32_t next_cost = cost + 1;
|
||||||
|
costs[next_x][next_y] = next_cost;
|
||||||
|
int insert_idx;
|
||||||
|
for (insert_idx = 0; insert_idx < queue_num; insert_idx++) {
|
||||||
|
int qx = queue[insert_idx][0];
|
||||||
|
int qy = queue[insert_idx][1];
|
||||||
|
if (costs[qx][qy] > next_cost) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int j = queue_num; j > insert_idx; j--) {
|
||||||
|
queue[j][0] = queue[j-1][0];
|
||||||
|
queue[j][1] = queue[j-1][1];
|
||||||
|
}
|
||||||
|
queue[insert_idx][0] = next_x;
|
||||||
|
queue[insert_idx][1] = next_y;
|
||||||
|
queue_num++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int good_cheats = 0;
|
||||||
|
int good_cheat_limit = 100;
|
||||||
|
|
||||||
|
// Find where to cheat
|
||||||
|
for (i = 0; i < rows; i++) {
|
||||||
|
for (int j = 0; j < columns; j++) {
|
||||||
|
if (map[i][j] != EMPTY) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// Try each direction and check if there's a wall
|
||||||
|
for (int k = 0; k < directions_len; k++) {
|
||||||
|
int dx = directions[k][0];
|
||||||
|
int dy = directions[k][1];
|
||||||
|
int x = i + dx;
|
||||||
|
int y = j + dy;
|
||||||
|
|
||||||
|
if (x < 0 || y < 0 || x >= rows || y >= columns || map[x][y] != WALL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now check whether we can get back to the track to shorten out time
|
||||||
|
for (int l = 0; l < directions_len; l++) {
|
||||||
|
int dx = directions[l][0];
|
||||||
|
int dy = directions[l][1];
|
||||||
|
int xx = x + dx;
|
||||||
|
int yy = y + dy;
|
||||||
|
|
||||||
|
if (xx < 0 || yy < 0 || xx >= rows || yy >= columns || map[xx][yy] == WALL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not good cheat enough
|
||||||
|
if (costs[xx][yy] < costs[i][j] + good_cheat_limit + 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
good_cheats++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int good_cheats2 = 0;
|
||||||
|
int good_cheat_limit2 = 100;
|
||||||
|
|
||||||
|
// Find where to cheat
|
||||||
|
for (i = 0; i < rows; i++) {
|
||||||
|
for (int j = 0; j < columns; j++) {
|
||||||
|
if (map[i][j] != EMPTY) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check submap, we can get to anywhere inside a 20 radius "circle" by activating the cheat here
|
||||||
|
for (int k = i-20; k <= i+20; k++) {
|
||||||
|
for (int l = j-(20-abs(k-i)); l <= j+(20-abs(k-i)); l++) {
|
||||||
|
if (k < 0 || l < 0 || k >= rows || l >= columns) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We don't want to get into a wall
|
||||||
|
if (map[k][l] == WALL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not good cheat enough
|
||||||
|
if (costs[k][l] < costs[i][j] + good_cheat_limit2 + abs(k-i) + abs(l-j)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
good_cheats2++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%i\n", good_cheats);
|
||||||
|
printf("%i\n", good_cheats2);
|
||||||
|
|
||||||
|
for (i = 0; i < rows; i++) {
|
||||||
|
free(costs[i]);
|
||||||
|
}
|
||||||
|
free(costs);
|
||||||
|
for (i = 0; i < rows + 1; i++) {
|
||||||
|
free(map[i]);
|
||||||
|
}
|
||||||
|
free(map);
|
||||||
|
}
|
||||||
141
day20/input.txt
Normal file
141
day20/input.txt
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
#############################################################################################################################################
|
||||||
|
#.......#...#.......#...#...###.....#.....#.....#.....#.....#...###...###.............#...#...#.......#...#...#...#...#...#.........#...#...#
|
||||||
|
#.#####.#.#.#.#####.#.#.#.#.###.###.#.###.#.###.#.###.#.###.#.#.###.#.###.###########.#.#.#.#.#.#####.#.#.#.#.#.#.#.#.#.#.#.#######.#.#.#.#.#
|
||||||
|
#.....#.#.#.#.....#...#...#...#...#.#...#.#...#.#.#...#...#.#.#.#...#...#.......#.....#.#.#.#.#...#...#.#.#.#.#.#...#...#...#.....#...#...#.#
|
||||||
|
#####.#.#.#.#####.###########.###.#.###.#.###.#.#.#.#####.#.#.#.#.#####.#######.#.#####.#.#.#.###.#.###.#.#.#.#.#############.###.#########.#
|
||||||
|
#.....#.#.#.#.....#...#...#...#...#.....#...#.#.#.#.#...#.#.#.#.#.#...#.....#...#.#...#.#...#.###.#.#...#...#.#.#.............###.....#...#.#
|
||||||
|
#.#####.#.#.#.#####.#.#.#.#.###.###########.#.#.#.#.#.#.#.#.#.#.#.#.#.#####.#.###.#.#.#.#####.###.#.#.#######.#.#.###################.#.#.#.#
|
||||||
|
#.....#...#.#.......#.#.#...###.........#...#.#...#.#.#.#.#.#.#.#...#.....#.#...#...#.#.#.....#...#...#.......#.#.......###...#.....#...#...#
|
||||||
|
#####.#####.#########.#.###############.#.###.#####.#.#.#.#.#.#.#########.#.###.#####.#.#.#####.#######.#######.#######.###.#.#.###.#########
|
||||||
|
#.....#...#.....#...#.#...#...#.........#.#...#...#.#.#...#...#...#.......#...#...#...#.#.....#.#.....#.....###.#.......#...#...#...###...###
|
||||||
|
#.#####.#.#####.#.#.#.###.#.#.#.#########.#.###.#.#.#.###########.#.#########.###.#.###.#####.#.#.###.#####.###.#.#######.#######.#####.#.###
|
||||||
|
#.......#.....#...#...#...#.#.#.........#.#.#...#...#...#.........#.#.......#.....#.#...#.....#...###.....#...#.#.#.......#...#...#...#.#...#
|
||||||
|
#############.#########.###.#.#########.#.#.#.#########.#.#########.#.#####.#######.#.###.###############.###.#.#.#.#######.#.#.###.#.#.###.#
|
||||||
|
###...###...#.........#...#.#...#.....#.#...#.###...#...#.........#...#...#...#.....#...#.#.......#...#...#...#.#...#...#...#...###.#.#.#...#
|
||||||
|
###.#.###.#.#########.###.#.###.#.###.#.#####.###.#.#.###########.#####.#.###.#.#######.#.#.#####.#.#.#.###.###.#####.#.#.#########.#.#.#.###
|
||||||
|
#...#.#...#.........#.#...#...#.#...#...#...#.....#.#.....#.......###...#.....#.....###.#.#.#...#.#.#.#...#.#...#.....#...#.....#...#...#...#
|
||||||
|
#.###.#.###########.#.#.#####.#.###.#####.#.#######.#####.#.#########.#############.###.#.#.#.#.#.#.#.###.#.#.###.#########.###.#.#########.#
|
||||||
|
#...#...#.........#...#.......#...#...#...#...#.....#...#.#.....#...#.........#.....#...#.#.#.#...#.#.#...#...#...#...#...#...#.#.#.........#
|
||||||
|
###.#####.#######.###############.###.#.#####.#.#####.#.#.#####.#.#.#########.#.#####.###.#.#.#####.#.#.#######.###.#.#.#.###.#.#.#.#########
|
||||||
|
#...#...#.#.......#...........#...#...#.#.....#.....#.#.#.#.....#.#.#...#.....#...#...#...#.#...###.#.#.#.....#.....#...#...#.#...#.......###
|
||||||
|
#.###.#.#.#.#######.#########.#.###.###.#.#########.#.#.#.#.#####.#.#.#.#.#######.#.###.###.###.###.#.#.#.###.#############.#.###########.###
|
||||||
|
#.....#...#.........#.....###.#...#.....#.......#...#.#...#.#...#.#.#.#.#.......#.#...#.###.#...#...#.#.#...#.............#...#...#.....#...#
|
||||||
|
#####################.###.###.###.#############.#.###.#####.#.#.#.#.#.#.#######.#.###.#.###.#.###.###.#.###.#############.#####.#.#.###.###.#
|
||||||
|
#.......#...#...#...#...#.#...#...#...###.......#.###...#...#.#.#.#.#.#...#...#.#.#...#...#.#.#...#...#.#...#...........#.#...#.#.#...#...#.#
|
||||||
|
#.#####.#.#.#.#.#.#.###.#.#.###.###.#.###.#######.#####.#.###.#.#.#.#.###.#.#.#.#.#.#####.#.#.#.###.###.#.###.#########.#.#.#.#.#.###.###.#.#
|
||||||
|
#.....#...#.#.#...#.....#.#.#...###.#...#.......#.#.....#.....#...#.#...#.#.#.#.#.#.#.....#.#.#...#.#...#.....#.........#...#...#.#...###...#
|
||||||
|
#####.#####.#.###########.#.#.#####.###.#######.#.#.###############.###.#.#.#.#.#.#.#.#####.#.###.#.#.#########.#################.#.#########
|
||||||
|
#...#.....#.#.......#...#...#.....#...#...#...#.#.#.......#.........#...#.#.#...#.#.#...###.#...#.#.#...#.......###...#.........#...###.....#
|
||||||
|
#.#.#####.#.#######.#.#.#########.###.###.#.#.#.#.#######.#.#########.###.#.#####.#.###.###.###.#.#.###.#.#########.#.#.#######.#######.###.#
|
||||||
|
#.#.......#.......#...#...#...#...###...#.#.#.#.#.#...###.#...#...###.#...#.#...#...#...#...#...#.#.....#.#...#.....#...#.....#.###...#...#.#
|
||||||
|
#.###############.#######.#.#.#.#######.#.#.#.#.#.#.#.###.###.#.#.###.#.###.#.#.#####.###.###.###.#######.#.#.#.#########.###.#.###.#.###.#.#
|
||||||
|
#...............#.###...#...#.#.....#...#.#.#...#.#.#...#.#...#.#.#...#...#...#.....#...#...#.#...#.......#.#...#...#...#...#...#...#.#...#.#
|
||||||
|
###############.#.###.#.#####.#####.#.###.#.#####.#.###.#.#.###.#.#.#####.#########.###.###.#.#.###.#######.#####.#.#.#.###.#####.###.#.###.#
|
||||||
|
###...###...#...#.....#...#...#.....#...#.#...#...#.#...#.#.###.#.#...#...#...#...#.#...###.#.#...#.###...#.#.....#...#.....#...#.#...#...#.#
|
||||||
|
###.#.###.#.#.###########.#.###.#######.#.###.#.###.#.###.#.###.#.###.#.###.#.#.#.#.#.#####.#.###.#.###.#.#.#.###############.#.#.#.#####.#.#
|
||||||
|
#...#.#...#...#...#.....#.#...#...#...#.#...#.#...#.#.#...#.#...#...#.#...#.#.#.#.#.#...#...#...#.#.#...#...#.###...#...#...#.#.#.#.......#.#
|
||||||
|
#.###.#.#######.#.#.###.#.###.###.#.#.#.###.#.###.#.#.#.###.#.#####.#.###.#.#.#.#.#.###.#.#####.#.#.#.#######.###.#.#.#.#.#.#.#.#.#########.#
|
||||||
|
#...#.#.........#...#...#...#...#...#.#.#...#...#.#.#.#.#...#.#...#.#.###...#.#.#...#...#.#...#...#...###...#.#...#...#...#.#.#.#.#.......#.#
|
||||||
|
###.#.###############.#####.###.#####.#.#.#####.#.#.#.#.#.###.#.#.#.#.#######.#.#####.###.#.#.###########.#.#.#.###########.#.#.#.#.#####.#.#
|
||||||
|
#...#...........#.....#...#.....#...#...#.#...#.#.#.#.#.#...#...#.#...#.......#.....#...#...#.#...........#...#.#...........#.#...#.....#.#.#
|
||||||
|
#.#############.#.#####.#.#######.#.#####.#.#.#.#.#.#.#.###.#####.#####.###########.###.#####.#.###############.#.###########.#########.#.#.#
|
||||||
|
#.............#.#.....#.#.........#.....#.#.#.#.#.#.#.#...#...#...#.....#.....#.....###...#...#.#.........#...#.#.......#.....#.........#...#
|
||||||
|
#############.#.#####.#.###############.#.#.#.#.#.#.#.###.###.#.###.#####.###.#.#########.#.###.#.#######.#.#.#.#######.#.#####.#############
|
||||||
|
###...#...#...#...###...#...............#.#.#.#.#.#.#.#...#...#...#.#...#...#.#.....#.....#...#.#.#.....#...#...#.......#.#...#.........#...#
|
||||||
|
###.#.#.#.#.#####.#######.###############.#.#.#.#.#.#.#.###.#####.#.#.#.###.#.#####.#.#######.#.#.#.###.#########.#######.#.#.#########.#.#.#
|
||||||
|
#...#...#...#.....#.......#.....#.......#...#...#...#.#.###.....#.#.#.#.#...#.#.....#.#.....#.#...#...#.........#...###...#.#.#...#...#...#.#
|
||||||
|
#.###########.#####.#######.###.#.#####.#############.#.#######.#.#.#.#.#.###.#.#####.#.###.#.#######.#########.###.###.###.#.#.#.#.#.#####.#
|
||||||
|
#.........#...#...#.........###...#...#.........#.....#...#...#.#.#...#...###.#.#.....#...#.#.....#...#.......#...#.....#...#...#...#.......#
|
||||||
|
#########.#.###.#.#################.#.#########.#.#######.#.#.#.#.###########.#.#.#######.#.#####.#.###.#####.###.#######.###################
|
||||||
|
#...#.....#.....#.....#...#...#.....#.........#.#.....#...#.#...#...........#...#.......#.#.......#...#.#.....###.........###...#.....#.....#
|
||||||
|
#.#.#.###############.#.#.#.#.#.#############.#.#####.#.###.###############.###########.#.###########.#.#.###################.#.#.###.#.###.#
|
||||||
|
#.#.#...#.....#.....#.#.#.#.#...#...#...#...#...#...#...###.......#.....#...#...........#.#.........#...#...........#...#...#.#.#.#...#.#...#
|
||||||
|
#.#.###.#.###.#.###.#.#.#.#.#####.#.#.#.#.#.#####.#.#############.#.###.#.###.###########.#.#######.###############.#.#.#.#.#.#.#.#.###.#.###
|
||||||
|
#.#.....#.#...#...#.#...#...#...#.#...#...#.......#...#...........#.###...###.......#.....#.......#...........#...#...#...#...#...#.....#...#
|
||||||
|
#.#######.#.#####.#.#########.#.#.###################.#.###########.###############.#.###########.###########.#.#.#########################.#
|
||||||
|
#.#...#...#.......#.....#.....#...#...#...#.......#...#...#.......#.............#...#.#...........#...#...###...#.#...#...#...#...#...#...#.#
|
||||||
|
#.#.#.#.###############.#.#########.#.#.#.#.#####.#.#####.#.#####.#############.#.###.#.###########.#.#.#.#######.#.#.#.#.#.#.#.#.#.#.#.#.#.#
|
||||||
|
#...#.#.###...#...#.....#...#.......#...#.#.#...#...#...#...#.....#...#...#.....#.#...#.#...#.......#.#.#.......#.#.#...#.#.#...#.#.#.#.#.#.#
|
||||||
|
#####.#.###.#.#.#.#.#######.#.###########.#.#.#.#####.#.#####.#####.#.#.#.#.#####.#.###.#.#.#.#######.#.#######.#.#.#####.#.#####.#.#.#.#.#.#
|
||||||
|
###...#...#.#...#...#.......#...........#.#...#.......#.#.....#...#.#.#.#.#.#.....#.###...#...###...#...#...#...#.#...#...#...###...#.#.#...#
|
||||||
|
###.#####.#.#########.#################.#.#############.#.#####.#.#.#.#.#.#.#.#####.#############.#.#####.#.#.###.###.#.#####.#######.#.#####
|
||||||
|
#...#...#.#.....#...#.###...###...#...#.#.#...#.........#.#...#.#...#.#.#.#.#.#...#.#.........#...#.......#...###.....#.....#.......#.#.....#
|
||||||
|
#.###.#.#.#####.#.#.#.###.#.###.#.#.#.#.#.#.#.#.#########.#.#.#.#####.#.#.#.#.#.#.#.#.#######.#.###########################.#######.#.#####.#
|
||||||
|
#.#...#.#.#...#...#...#...#.....#...#...#...#.#.........#.#.#...#...#.#.#...#...#.#.#.....#...#...........#...............#.#...#...#.#...#.#
|
||||||
|
#.#.###.#.#.#.#########.#####################.#########.#.#.#####.#.#.#.#########.#.#####.#.#############.#.#############.#.#.#.#.###.#.#.#.#
|
||||||
|
#.#...#...#.#.#.........#...................#...........#.#...#...#.#...#...#...#.#.#.....#.###...........#.#.............#...#...###...#...#
|
||||||
|
#.###.#####.#.#.#########.#################.#############.###.#.###.#####.#.#.#.#.#.#.#####.###.###########.#.###############################
|
||||||
|
#.#...#.....#.#...........#...#.............###.........#.....#...#.#...#.#.#.#.#...#.....#...#.............#.#.........#...................#
|
||||||
|
#.#.###.#####.#############.#.#.###############.#######.#########.#.#.#.#.#.#.#.#########.###.###############.#.#######.#.#################.#
|
||||||
|
#...#...#...#.........###...#...#...#...#.......#...#...#.........#...#...#...#.....#...#.#...#...#...#.....#...#.....#...#.................#
|
||||||
|
#####.###.#.#########.###.#######.#.#.#.#.#######.#.#.###.#########################.#.#.#.#.###.#.#.#.#.###.#####.###.#####.#################
|
||||||
|
#...#.....#.........#.....#.......#...#...#...#...#...#...#.........#.............#...#...#.....#...#.#...#.....#...#.#.....#.....#.........#
|
||||||
|
#.#.###############.#######.###############.#.#.#######.###.#######.#.###########.###################.###.#####.###.#.#.#####.###.#.#######.#
|
||||||
|
#.#.#...###...#...#.......#.#.....#...#.....#...#.....#.....#######...###.........#...#.....#...#...#...#.....#.....#...#...#...#.#.#.......#
|
||||||
|
#.#.#.#.###.#.#.#.#######.#.#.###.#.#.#.#########.###.###################.#########.#.#.###.#.#.#.#.###.#####.###########.#.###.#.#.#.#######
|
||||||
|
#.#.#.#.#...#...#.........#.#...#...#...#.........#...###################...#.....#.#.#.###...#.#.#...#.#...#...#...#.....#.....#.#.#.......#
|
||||||
|
#.#.#.#.#.#################.###.#########.#########.#######################.#.###.#.#.#.#######.#.###.#.#.#.###.#.#.#.###########.#.#######.#
|
||||||
|
#.#...#...#...#.........#...###...........#.........#######################...###...#.#.....###.#.#...#...#...#.#.#...#...#.....#.#.#.....#.#
|
||||||
|
#.#########.#.#.#######.#.#################.#########################################.#####.###.#.#.#########.#.#.#####.#.#.###.#.#.#.###.#.#
|
||||||
|
#.#...#.....#.#.#.......#...#.........#...#.......#################S..#...#.........#...#...#...#.#.#.....###...#.#.....#.#.#...#...#...#...#
|
||||||
|
#.#.#.#.#####.#.#.#########.#.#######.#.#.#######.###################.#.#.#.#######.###.#.###.###.#.#.###.#######.#.#####.#.#.#########.#####
|
||||||
|
#.#.#.#.#.....#.#...........#.......#...#.#.....#...#################.#.#.#.....#...###...###.#...#.#...#...#...#.#.....#...#.........#.....#
|
||||||
|
#.#.#.#.#.#####.###################.#####.#.###.###.#################.#.#.#####.#.###########.#.###.###.###.#.#.#.#####.#############.#####.#
|
||||||
|
#.#.#...#...#...###.......#...###...#...#...###...#.###############...#.#.###...#.#.........#...###.....#...#.#...#...#...###.......#.#...#.#
|
||||||
|
#.#.#######.#.#####.#####.#.#.###.###.#.#########.#.###############.###.#.###.###.#.#######.#############.###.#####.#.###.###.#####.#.#.#.#.#
|
||||||
|
#.#.#.......#.#...#.....#...#...#...#.#.###...###.#.#########.......#...#...#...#.#.#.......###...........#...#.....#...#.....#.....#...#...#
|
||||||
|
#.#.#.#######.#.#.#####.#######.###.#.#.###.#.###.#.#########.#######.#####.###.#.#.#.#########.###########.###.#######.#######.#############
|
||||||
|
#...#.........#.#.....#.......#...#...#.....#...#...#######...#...###.....#.#...#.#.#.#.......#...........#...#.#...###.........#...........#
|
||||||
|
###############.#####.#######.###.#############.###########.###.#.#######.#.#.###.#.#.#.#####.###########.###.#.#.#.#############.#########.#
|
||||||
|
###...#...#...#.....#.#...###...#.#...#.........#E#########...#.#...#...#.#.#...#.#.#.#.#.....###...#...#.....#...#...............#...#.....#
|
||||||
|
###.#.#.#.#.#.#####.#.#.#.#####.#.#.#.#.#########.###########.#.###.#.#.#.#.###.#.#.#.#.#.#######.#.#.#.###########################.#.#.#####
|
||||||
|
#...#...#...#.......#...#.....#.#...#...###...###.#########...#.#...#.#...#.#...#...#...#.....#...#...#.#.........#...#.....#...#...#...#...#
|
||||||
|
#.###########################.#.###########.#.###.#########.###.#.###.#####.#.###############.#.#######.#.#######.#.#.#.###.#.#.#.#######.#.#
|
||||||
|
#...................#...#...#.#.....#.......#...#.#########...#.#...#.....#.#.......#...#.....#.......#.#.......#.#.#.#...#...#.#.#.......#.#
|
||||||
|
###################.#.#.#.#.#.#####.#.#########.#.###########.#.###.#####.#.#######.#.#.#.###########.#.#######.#.#.#.###.#####.#.#.#######.#
|
||||||
|
#.......#...#.......#.#...#.#.......#.#...#.....#...#.........#.#...###...#...#...#.#.#...#...#.......#.........#...#...#.#...#...#...#...#.#
|
||||||
|
#.#####.#.#.#.#######.#####.#########.#.#.#.#######.#.#########.#.#####.#####.#.#.#.#.#####.#.#.#######################.#.#.#.#######.#.#.#.#
|
||||||
|
#.#...#...#...#...#...#.....#.........#.#...#...#...#.###...###.#.#...#.#.....#.#...#...#...#.#...............#...###...#...#.........#.#.#.#
|
||||||
|
#.#.#.#########.#.#.###.#####.#########.#####.#.#.###.###.#.###.#.#.#.#.#.#####.#######.#.###.###############.#.#.###.#################.#.#.#
|
||||||
|
#...#...#.....#.#...#...#...#.#.......#.....#.#.#...#.#...#...#.#.#.#.#.#.#...#.....#...#.#...#...#.........#...#...#.....#.............#...#
|
||||||
|
#######.#.###.#.#####.###.#.#.#.#####.#####.#.#.###.#.#.#####.#.#.#.#.#.#.#.#.#####.#.###.#.###.#.#.#######.#######.#####.#.#################
|
||||||
|
#.....#.#.###...#...#.....#.#.#.....#.......#.#.#...#...#.....#.#.#.#.#.#.#.#.#.....#...#.#...#.#.#.......#.........#...#...###...#.........#
|
||||||
|
#.###.#.#.#######.#.#######.#.#####.#########.#.#.#######.#####.#.#.#.#.#.#.#.#.#######.#.###.#.#.#######.###########.#.#######.#.#.#######.#
|
||||||
|
#...#...#.#.......#.......#...#.....#...#...#.#.#.......#.#...#.#.#.#.#.#.#.#.#.......#.#.#...#.#.#...###...#.........#.........#...#.......#
|
||||||
|
###.#####.#.#############.#####.#####.#.#.#.#.#.#######.#.#.#.#.#.#.#.#.#.#.#.#######.#.#.#.###.#.#.#.#####.#.#######################.#######
|
||||||
|
#...#...#.#.........#...#...#...#...#.#.#.#.#.#.#...#...#.#.#.#.#.#.#.#.#.#.#...#...#.#.#.#...#.#.#.#.....#...#...#...#.....#.........###...#
|
||||||
|
#.###.#.#.#########.#.#.###.#.###.#.#.#.#.#.#.#.#.#.#.###.#.#.#.#.#.#.#.#.#.###.#.#.#.#.#.###.#.#.#.#####.#####.#.#.#.#.###.#.###########.#.#
|
||||||
|
#...#.#.#.###...###...#...#...#...#...#.#.#...#.#.#.#.###.#.#.#.#.#.#.#.#...###.#.#...#...###.#.#...###...#...#.#.#.#.#.###...#...#.......#.#
|
||||||
|
###.#.#.#.###.#.#########.#####.#######.#.#####.#.#.#.###.#.#.#.#.#.#.#.#######.#.###########.#.#######.###.#.#.#.#.#.#.#######.#.#.#######.#
|
||||||
|
#...#.#.#.#...#.#.........#...#.#.......#...###.#.#.#.#...#.#.#.#...#...###.....#...........#.#.#.......#...#...#...#...#...###.#.#.#...#...#
|
||||||
|
#.###.#.#.#.###.#.#########.#.#.#.#########.###.#.#.#.#.###.#.#.###########.###############.#.#.#.#######.###############.#.###.#.#.#.#.#.###
|
||||||
|
#.#...#...#...#...#...#...#.#.#.#...#.....#...#...#.#.#...#.#.#.#.....#.....#...#...#...#...#.#.#.#...#...###...#...#...#.#.....#...#.#...###
|
||||||
|
#.#.#########.#####.#.#.#.#.#.#.###.#.###.###.#####.#.###.#.#.#.#.###.#.#####.#.#.#.#.#.#.###.#.#.#.#.#.#####.#.#.#.#.#.#.###########.#######
|
||||||
|
#.#.#.........#...#.#...#...#.#.#...#...#...#.....#...###...#.#...#...#.#.....#.#.#.#.#.#...#.#.#...#.#.......#...#.#.#.#.#.....#...#.#.....#
|
||||||
|
#.#.#.#########.#.#.#########.#.#.#####.###.#####.###########.#####.###.#.#####.#.#.#.#.###.#.#.#####.#############.#.#.#.#.###.#.#.#.#.###.#
|
||||||
|
#.#.#.........#.#.#.#.......#...#.....#.#...#...#...#.......#.#...#...#.#.#.....#.#.#.#.#...#...#...#.....#.......#...#...#...#.#.#.#...#...#
|
||||||
|
#.#.#########.#.#.#.#.#####.#########.#.#.###.#.###.#.#####.#.#.#.###.#.#.#.#####.#.#.#.#.#######.#.#####.#.#####.###########.#.#.#.#####.###
|
||||||
|
#...#...###...#.#.#.#.#...#...........#.#.#...#.#...#.....#...#.#.#...#...#.....#.#.#.#.#.....#...#.#.....#...#...#...#...#...#.#.#.#.....###
|
||||||
|
#####.#.###.###.#.#.#.#.#.#############.#.#.###.#.#######.#####.#.#.###########.#.#.#.#.#####.#.###.#.#######.#.###.#.#.#.#.###.#.#.#.#######
|
||||||
|
#.....#.....#...#...#...#.........#...#.#.#.###...###.....#...#.#...#...#.......#.#...#.#...#...#...#.#...#...#...#.#.#.#.#.###.#.#.#.......#
|
||||||
|
#.###########.###################.#.#.#.#.#.#########.#####.#.#.#####.#.#.#######.#####.#.#.#####.###.#.#.#.#####.#.#.#.#.#.###.#.#.#######.#
|
||||||
|
#.....#.....#.....###...###...#...#.#...#.#.#.........#...#.#.#...#...#.#.#.....#.....#...#.....#...#.#.#.#.#.....#.#.#.#.#...#...#...#...#.#
|
||||||
|
#####.#.###.#####.###.#.###.#.#.###.#####.#.#.#########.#.#.#.###.#.###.#.#.###.#####.#########.###.#.#.#.#.#.#####.#.#.#.###.#######.#.#.#.#
|
||||||
|
#...#...#...#...#.#...#.....#...#...#...#...#.........#.#.#.#...#...#...#.#.#...#...#.......###.....#...#.#.#.....#.#.#.#...#...#...#...#...#
|
||||||
|
#.#.#####.###.#.#.#.#############.###.#.#############.#.#.#.###.#####.###.#.#.###.#.#######.#############.#.#####.#.#.#.###.###.#.#.#########
|
||||||
|
#.#.....#...#.#...#.#...#...#...#.....#.#.........###.#.#.#...#...#...###...#...#.#...#...#.............#...#...#.#.#...###...#...#...#...###
|
||||||
|
#.#####.###.#.#####.#.#.#.#.#.#.#######.#.#######.###.#.#.###.###.#.###########.#.###.#.#.#############.#####.#.#.#.#########.#######.#.#.###
|
||||||
|
#.#...#.....#.....#...#.#.#.#.#...#...#.#.#.....#.....#.#.#...###.#.....#.......#...#.#.#.#...#...#...#...#...#...#.###...###.#.....#...#...#
|
||||||
|
#.#.#.###########.#####.#.#.#.###.#.#.#.#.#.###.#######.#.#.#####.#####.#.#########.#.#.#.#.#.#.#.#.#.###.#.#######.###.#.###.#.###.#######.#
|
||||||
|
#.#.#...#...#...#...###...#.#.###...#...#...#...#.......#.#.....#.#.....#.....#...#.#...#...#.#.#.#.#...#.#...#...#.....#...#.#.#...#.....#.#
|
||||||
|
#.#.###.#.#.#.#.###.#######.#.###############.###.#######.#####.#.#.#########.#.#.#.#########.#.#.#.###.#.###.#.#.#########.#.#.#.###.###.#.#
|
||||||
|
#.#.#...#.#.#.#...#.....#...#.#...............#...#.......#.....#.#...#.......#.#.#.........#.#.#.#.#...#...#.#.#.#.....#...#.#.#.#...#...#.#
|
||||||
|
#.#.#.###.#.#.###.#####.#.###.#.###############.###.#######.#####.###.#.#######.#.#########.#.#.#.#.#.#####.#.#.#.#.###.#.###.#.#.#.###.###.#
|
||||||
|
#.#.#...#.#.#...#...#...#.....#...#...#.....#...###...#...#.....#...#.#...#...#.#...#.....#.#.#.#.#.#.#.....#...#.#.###...###.#.#...#...#...#
|
||||||
|
#.#.###.#.#.###.###.#.###########.#.#.#.###.#.#######.#.#.#####.###.#.###.#.#.#.###.#.###.#.#.#.#.#.#.#.#########.#.#########.#.#####.###.###
|
||||||
|
#...###.#.#.#...###...###.........#.#.#...#.#...#...#.#.#.#.....###.#...#.#.#.#.#...#...#...#.#.#...#.#.#.........#...###...#...#...#...#...#
|
||||||
|
#######.#.#.#.###########.#########.#.###.#.###.#.#.#.#.#.#.#######.###.#.#.#.#.#.#####.#####.#.#####.#.#.###########.###.#.#####.#.###.###.#
|
||||||
|
#.......#.#.#.#...........#.....#...#.#...#...#...#.#.#.#.#...#.....#...#.#.#.#.#.#...#...#...#.....#.#.#...#...#...#.....#.......#...#.#...#
|
||||||
|
#.#######.#.#.#.###########.###.#.###.#.#####.#####.#.#.#.###.#.#####.###.#.#.#.#.#.#.###.#.#######.#.#.###.#.#.#.#.#################.#.#.###
|
||||||
|
#.........#...#.............###...###...#####.......#...#.....#.......###...#...#...#.....#.........#...###...#...#...................#...###
|
||||||
|
#############################################################################################################################################
|
||||||
15
day20/sample.txt
Normal file
15
day20/sample.txt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
###############
|
||||||
|
#...#...#.....#
|
||||||
|
#.#.#.#.#.###.#
|
||||||
|
#S#...#.#.#...#
|
||||||
|
#######.#.#.###
|
||||||
|
#######.#.#...#
|
||||||
|
#######.#.###.#
|
||||||
|
###..E#...#...#
|
||||||
|
###.#######.###
|
||||||
|
#...###...#...#
|
||||||
|
#.#####.#.###.#
|
||||||
|
#.#...#.#.#...#
|
||||||
|
#.#.#.#.#.#.###
|
||||||
|
#...#...#...###
|
||||||
|
###############
|
||||||
Reference in New Issue
Block a user