Day 7
This commit is contained in:
142
data/07.in
Normal file
142
data/07.in
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
......................................................................S......................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
......................................................................^......................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.....................................................................^.^.....................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
....................................................................^.^.^....................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...................................................................^.^...^...................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..................................................................^.^.....^..................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.................................................................^.....^...^.................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
................................................................^...^.^.....^................................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...............................................................^.^.^.^.^.^...^...............................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..............................................................^.^...^.^.^...^.^..............................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.............................................................^.^.^.^...^.^.^.^.^.............................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
............................................................^...^.^.^.^.^.^.^...^............................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...........................................................^.^...^.....^...^.^.^.^...........................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..........................................................^.^.^.^.^.....^.....^...^..........................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.........................................................^.^.^.^.^.^.^.....^.^.^.^.^.........................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
........................................................^.^.^.^...^.^.^.^.^.......^.^........................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.......................................................^...^.^.^.^.^.^.^...^.^...^...^.......................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
......................................................^.^.....^.....^.^.^.^.....^.^.^.^......................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.....................................................^...^...^.^.^.^.^...^...^.^...^.^.^.....................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
....................................................^.....^.^...^...^...^.^.....^...^...^....................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...................................................^.^.^...^.....^.....^.^...^.^.^.^.^.^.^...................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..................................................^...^.^...^.....^...^.^...^.....^...^.^.^..................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.................................................^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.^...^.^.^.^.................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
................................................^.^...^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^................................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...............................................^.^.^.^...^.^.^.^.^.^.^.^...^.^.^.^.....^...^.^...............................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..............................................^.^.....^.^...^.^...^.^.^...^.^.^.^.^.^.....^.^.^..............................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.............................................^.^.......^.........^...^.....^.^.^.^.^.^...^.^...^.............................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
............................................^...^.^...^.^.^.^.^...........^...^.^.^...^.^.^.^...^............................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...........................................^...^.^.^...^.^.^.^...^...^.^.^.....^...^.^.^.^.^...^.^...........................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..........................................^.^.^...^...^.^.........^...^.^.^.^.^.^.^.......^.^.^...^..........................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.........................................^.^.^.^.^.^.^.........^.^...^.^.^.^.^.^...^...^...^.^.^...^.........................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
........................................^...^.^...^.....^.^.^.^.^.^...^.^.^.^...^.^.^...^.^...^...^.^........................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.......................................^...^...^...^.^.^.^.^.^...^.^.^.^.......^.^...^.^.^...^.......^.......................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
......................................^.....^...^.^...^.^.^.^...^...^.^.^...^.^.....^.^.^.^...^...^.^.^......................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.....................................^.^...^.........^.^...^...^.^.....^.^.^.^...^.^.......^.^.^...^.^.^.....................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
....................................^.^.^.^.^.^.^...^...^.^...^.^.......^.^.^.^...^...^.^.^.^.^...^.^...^....................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...................................^.....^.^.^.^.^.^...........^...^.^.^.^.^.^.^.^.^.^.^...^...^.^...^.^.^...................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..................................^...^...^.^...^.^.^.^...^.^.^...^...^...^.^.^.^.^.....^...^...^.^.^.....^..................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.................................^...^.^.^.^.^.^.....^.^.....^.^.^...^...^.^.....^.......^.....^...^.^...^.^.................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
................................^.^.^.^...^.^.^.^.^.^.^.......^.^.^.^.^...^...^.^.^.^.^...^.^.......^.....^.^................................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...............................^.^...^...^.....^.^...^.......^.^.^.^.^.^.^.^.....^.^.^.^.^.^.^.......^.^.^...^...............................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..............................^...^.....^.^.^.^.....^.^.^.^.^.^.^.^.....^...^.^...^.^.^.^.^...^.^.....^.^.^.^.^..............................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.............................^.^...^...^.^.^.^.^.^.^.^.......^.....^.^.........^...^.^...^.^.^.....^.^.^.^.^.^.^.............................
|
||||||
|
.............................................................................................................................................
|
||||||
|
............................^.^.^.^...^...^.....^...^.^.....^.^.^.^.^.^.^.^.^.^.^.....^.^.^...^.^.^.^.^.^.^.^.^.^............................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...........................^.^.^.^.^.^...^.^.^.^.^...^.^.......^...^.^.^.^.^.^.^.^...^.^.^.....^...^.^.....^.^.^.^...........................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..........................^.^.^.^.^.^.^.^.^.......^.^.^...^...^.....^.^.^.^.^.....^.^.^...^...^...........^.^.^...^..........................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.........................^.^...^...^.......^...^...^.^...^.^.....^...^.^.^...^.^.^.^.^.^.^.^.......^.^...^...^.....^.........................
|
||||||
|
.............................................................................................................................................
|
||||||
|
........................^.^.^.^.^.^.^.^.....^.^...^.^.^.^...^.....^.^.^...^...^.^.^.^...^.....^.^.....^.^.....^.^.^.^........................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.......................^.^.^.^.^.^.^...^...^.^.^...^.^.^.....^.^.^.....^.^.^.^.^.^.....^.^...^...^.^.^.^.^.^.^.....^.^.......................
|
||||||
|
.............................................................................................................................................
|
||||||
|
......................^...^.^.^.^.....^.....^.^.^.......^...^.^.^.^...^.....^.^.^.^.^.^.^.^.^.^.^...^...^...^...^.^...^......................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.....................^.^...^.^.^.^.^.^...^.^.^...^.^.....^.^...^.^.^.^.^.^.^.....^.^.^.^.^.......^.......^.^.^.^.^.^.^.^.....................
|
||||||
|
.............................................................................................................................................
|
||||||
|
....................^.^.^.......^.......^.^.....^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.....^.^.....^.....^.^.^....................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...................^.....^.^...^...^.^.^.^...^.^.^.......^.^.^.^.^.^.^.^.^.^.^.^.......^.^.^.^.......^.^.^...^...^.^.^...^...................
|
||||||
|
.............................................................................................................................................
|
||||||
|
..................^.^.^.....^.^.^.^.^.^...^.....^.^.^.^.^.^.^...^.^.^.....^...^.^.^.^.^.^...^.^.^...^.^.^.^...^.^.^...^.^.^..................
|
||||||
|
.............................................................................................................................................
|
||||||
|
.................^.......^...^.^.......^.^.^.^.^...^...^.^...^.^...^.^.....^.....^.^.^.^...^...^...^.^.^...^.^.^.^.^.^.^.^.^.................
|
||||||
|
.............................................................................................................................................
|
||||||
|
................^.....^.^...^.^.^.^.^.....^.^.^...^...^.^...^.^.^...^.^.^.^.^.^.^.^.^...^.^...^.^...^.......^...^.^...^.^.^.^................
|
||||||
|
.............................................................................................................................................
|
||||||
|
...............^.^...^.^.^.....^.........^...^.....^.^.^.........^.^.^.^...^.^.^.^...^.^.^...^.^.....^.^.^.^...^...^.^.^.^.^.^...............
|
||||||
|
.............................................................................................................................................
|
||||||
|
..............^.^.^...^.^.^.^.^.....^.^.^.^.^...^.^.^.^.......^...^.......^.^.^.^.^.^...^.^.....^.^...^.......^.^.^.....^.....^..............
|
||||||
|
.............................................................................................................................................
|
||||||
|
.............^.^.^.^.^...^...^...^.....^.^.^.^.^.^.^...^.....^.^...^.^...^.^.......^.^.^.^.^.^.^...^.......^...^.^...^.^.^.^.^.^.............
|
||||||
|
.............................................................................................................................................
|
||||||
|
............^.^...^...^.....^.^...^.^.^.^.....^...^.^...^.....^.^.^.^...^.^.^...........^...^.^.^.^...^.^.^.^.^.^.^.....^.^.^.^.^............
|
||||||
|
.............................................................................................................................................
|
||||||
|
...........^...^...^.......^.^...^.^...^.^.^...^.^.^.^.^.^.^.^.^.^.^.^...^.....^.^.^.^.^.^...^.^.^.....^...^.......^...^...^.^.^.^...........
|
||||||
|
.............................................................................................................................................
|
||||||
|
..........^.^.^.^.^...^.^.^.....^...^.^...^.^.^...^.......^.^.^.^...^.^.^.^.....^.^.^...^.^.^...^...^...^.^...^.^.^...^.....^.^...^..........
|
||||||
|
.............................................................................................................................................
|
||||||
|
.........^.^.^.....^...^.^.^.......^.^.^...^.^...^.^.^.^...^.......^.^.^.^...^...^.^.^.^.^.....^.^.^...^...^.....^.^.....^.^.^...^.^.........
|
||||||
|
.............................................................................................................................................
|
||||||
|
........^.^.^.^.^.^.^...^.^.....^.......^...^.^.^.^.^.....^.........^.^...^.^...^.^.^...^.^.....^.^.^...^.^.^.^.^...^.^.^...^...^.^.^........
|
||||||
|
.............................................................................................................................................
|
||||||
|
.......^.^.^.^.^...^.^.......^.^.^.^.^.........^.^.....^.^.^.^.^...^.^.^...^.^.^.^.......^.^.......^...^.^.^.^.^.^.^.^.....^.....^.^.^.......
|
||||||
|
.............................................................................................................................................
|
||||||
|
......^...^.^.^.^.^.^.^.....^.^.^...^.^.^.....^.^.^...^.^...^...^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^...^.^.^...^.^.^.^.....^.^.^...^...^.^......
|
||||||
|
.............................................................................................................................................
|
||||||
|
.....^...^...^.^...^.^.^.^.^...^.^.^.^.^.^.^.^.^.....^...^...^.^.^...^.^.^.^...^...^.^.^.^.^.^...^.^.^.....^...^...^.^.^.^.^.....^.^.^.^.....
|
||||||
|
.............................................................................................................................................
|
||||||
|
....^.^...^.^...^.^.^.^.^...^...^...^...^.^...^...^.^.^.^.^.^...^.....^.....^.^.....^...^.^...^...^.^...^.^.^.^.^.^.^.^...^.^.^.^.^...^.^....
|
||||||
|
.............................................................................................................................................
|
||||||
|
...^.^.^.^.^...^.^.^.^.....^.^.^.^.^...^.^.^...^.^...^.^...^.....^...^.....^.^.^.^...^.^.^...^.^...^...^.^.^.....^.^.^.^...^.^.^.^...^...^...
|
||||||
|
.............................................................................................................................................
|
||||||
|
..^.^.^...^.^...^.^.^.^...^.^.^.^.^.....^.^...^.........^.^...^.^...^.^.^.^...^.^.^.^.^.^.^.^...^.......^.^.^.^.^.^.^...^.^.^.....^.^.^...^..
|
||||||
|
.............................................................................................................................................
|
||||||
|
.^.^.^.^.....^.^.^.....^...^.^.^.^.^.^.^...^...^.^...^.^.....^...^.^.^.......^.^.^.......^...^.^.^.^.^.^.^.^.^...^.^.^.......^...^.^.....^.^.
|
||||||
|
.............................................................................................................................................
|
||||||
71
day07.sql
Normal file
71
day07.sql
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
with recursive
|
||||||
|
|
||||||
|
grid (line, row) as (
|
||||||
|
select
|
||||||
|
unnest(line),
|
||||||
|
generate_subscripts(line, 1) as row
|
||||||
|
from (
|
||||||
|
select string_split(trim(content, e'\n'), e'\n') as line
|
||||||
|
from read_text('data/07.in')
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|
||||||
|
dims as (
|
||||||
|
select
|
||||||
|
max(row) as height,
|
||||||
|
max(length(line)) as width
|
||||||
|
from grid
|
||||||
|
),
|
||||||
|
|
||||||
|
initial as (
|
||||||
|
select col from range(1, (select width from dims)) r (col), grid
|
||||||
|
where row = 1 and line[col] <> '.'
|
||||||
|
),
|
||||||
|
|
||||||
|
trace (depth, col, num) as (
|
||||||
|
select
|
||||||
|
1,
|
||||||
|
col,
|
||||||
|
cast(1 as int128)
|
||||||
|
from initial
|
||||||
|
|
||||||
|
union
|
||||||
|
|
||||||
|
select
|
||||||
|
depth,
|
||||||
|
col,
|
||||||
|
sum(num)
|
||||||
|
from
|
||||||
|
(
|
||||||
|
select
|
||||||
|
depth + 1 as depth,
|
||||||
|
unnest(
|
||||||
|
case
|
||||||
|
when line[col] = '^'
|
||||||
|
then [col - 1, col + 1]
|
||||||
|
else [col]
|
||||||
|
end
|
||||||
|
) as col,
|
||||||
|
num
|
||||||
|
from
|
||||||
|
trace, grid
|
||||||
|
where
|
||||||
|
depth + 1 = row
|
||||||
|
)
|
||||||
|
group by depth, col
|
||||||
|
),
|
||||||
|
|
||||||
|
part1 (solution) as (
|
||||||
|
select count(*) from trace, grid
|
||||||
|
where line[col] = '^' and depth + 1 = row
|
||||||
|
),
|
||||||
|
|
||||||
|
part2 (solution) as (
|
||||||
|
select sum(num) from trace
|
||||||
|
where depth = (select height from dims)
|
||||||
|
)
|
||||||
|
|
||||||
|
select
|
||||||
|
part1.solution as p1,
|
||||||
|
part2.solution as p2
|
||||||
|
from part1, part2;
|
||||||
Reference in New Issue
Block a user