mirror of
https://github.com/danbulant/adventOfCode
synced 2026-09-17 13:23:53 +00:00
first commit
This commit is contained in:
commit
028be47d41
220 changed files with 11240 additions and 0 deletions
1
2021/.gitignore
vendored
Normal file
1
2021/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
target
|
||||
7
2021/25/Cargo.lock
generated
Normal file
7
2021/25/Cargo.lock
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "twofive"
|
||||
version = "0.1.0"
|
||||
8
2021/25/Cargo.toml
Normal file
8
2021/25/Cargo.toml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "twofive"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
137
2021/25/input
Normal file
137
2021/25/input
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
>.v>.v...v..v>>.>.>...vvv>>.v.>.v>>vv..>......v>.......v.>>..vvvv.>..>>.>.>vv...vv>..........>..v...>v...v.vv..>v>.v.v>>v.>vv.v.>.vvv.>v.>.
|
||||
v.v>>..>v>>.>>v...>>v>v>..>v.>.......v.>..v>>..>>.>.>....>.>>vvv..>...>>>...>v>...>>.vvv...vv..v.v..v.>..v>v...>..>.v.>.>>v>v>vv.v........v
|
||||
....>.>vv>.v>>.>>>v.v>vv>>..v..v>..>..v......>....v.>vv>....v>>.vvvv.>.>..>.vvv...vvv.v>...>>......v>>.v.>v>.>v>..v...>>.>.vvvv.v.v.vv.v.>>
|
||||
...>..v.v.....>vv..vv.vv.....>.v.>v.v.>>..>v.vv.v.>>v.>.>..>>>>.>vvvv>.v.v..>..vvv.......v.>.>v>vv>>.v.vvv..>>>>>v>.....>v...v>.vvv.>v...v.
|
||||
..>.vv.v.v>v.v..v.v...v>v>v.>.v.v>v>.>>..>>v.>..>.>.......v>v..>...>.>.v..>v..v>vv>..>>>....vv.v....>.>..v.v..vv.>.>.v>>v..>>......vv.>.>v>
|
||||
.>.>.>.>>>>v..>.>.v>vvv.>v>..>v>vv.>v>.v...vv.>...>.v>.>>v.>v.>>.v>.>..v..>v>>...>.>.v>..>.v>>vvv.v.v>v>.>..vv....>.vv..>>v.v..vv..v.>.v>..
|
||||
>..>.>v>>v>>>>....v....>vv......v>.v.vvvvv.>..>v...>>v....>>v>>>>>.>>.......v..v>...>.>.v.v.vv....>>>v.>..v.>vv>...>v.>v>v.v..>.vv.>..>..>.
|
||||
v.v>>>.vv..v.v.>v>v>>>......v>.v.>v..>..>>>.v..v>.>..v...v.vv.....v.v>>.v..>..>.....v>....>>v.vv>.......>.>v....>>......v>.>.>.v.>.>>..v...
|
||||
>.v>..>>>..>..vv.vv>.>.>.>>vv.>v>>v.v>..>...v.>..>..........v..v.vv.>..>..>.v..v...vv..v>>>.>v....>..>>....>>>..v.>....>..v..>...>>.v.>>.>v
|
||||
>.>..v.vvv..vvv>.v..>v>>v>>.>.>..vv..vv>>v....>.v.>vv>...>..v....v..v..v..>v>.....>>vv.v.v>.>>...v.>..>vv....>.v.v.>>...>..>>.>>>>>>>.v>>v.
|
||||
v.v>>..vv>.v.v........>.v.v....>.v.vvv.>v>..>....vv.v.vv>.>v>v....vv.>v.v..>v.v>>...>>vv..>.v.>v.>v....v...v>vv>.>.v..>.v.....vvv>>..>...>.
|
||||
.v>v.v>..>v....v.>v>...vv>v..vv.v.>>...v....v>>.v>v>>>.vv>>.vvv..v...v>....v..>..>vv>>v..v.v.>>>>>.vv..vv...>..vvvvv.v.v>v>>..>v.v.v>..>>v.
|
||||
..v.vv>..v.v.>>..>v>.....>>.>v..>.>v.v.>vv>>>vv.>.v.>v>vv>>v...v>vv>>.>v>v..>.v>v>>..v>..v..v>v.vv.v>>.>v>>..>>vv.v>..v>v>>.v.v..>.>.v..vv.
|
||||
>>.vv>....>v.>v.>..>....v.>..v>>..>....vv..>.v>.>>..>.v....v.>v>v....v.>>.v..vv.vv.>..vv>.vv.vv>v.v>v.>..v..>.v>v...v...vvv>....vv>..v>.>..
|
||||
.v.v>>>v.....v...v..v...v.>.v...>>.vv.>>..v>..>v.v..v..v.v>.>>...>>....>..v>.>v.v.v..v.>>vv..v.>...>>vvv>v.vv.v.v..v.>.v.v>...>>......v..>>
|
||||
v.>..vvv.v>>v.v>>...v..vv.v.>.>v..v..>v.>v.>>v..v..>..v..>..>v>v.....v.v>.>v.v.>>>.vv.v.>>..>..v..>v>>....v.vv>>v>>v>v.>v..>>>v>..v.vvv.>..
|
||||
...>..>>.v....v>>..>.>v...v>>>..>....vv.v.>>...>...vv.vvv.v...>..v..>..v>.v>v.vvv>>v.>.vv...vvv>.>vv.>.v.vv...>.vv.>>>>>......>v>v..v......
|
||||
>...>...v.vv.>v.>>>v>>..v.v.v>>..>>>..>v.>>.>v.v.>v.>.......>.>>>...v..>>..>..>.>>.v.v>>vv.v>.v.....>>...>....>>......v>......>v>.>...>>.v.
|
||||
...v>v>..>...v>v.>>>vvv.v..v.vv>.v>..v>.v.v..vv.>v>.v.vv.>...>v..>...v...>v.v..v....>v>>..v...>..>...>...>>.v.v>.>..>.vvvv..>>>v.vv.>v.v>v.
|
||||
.>...>>....v...>>v>v>v.v......v.vv...>.vv.v.>..vv>.v..>..>.....vvv.v..v.>...vv.>>>vvvv.>v>vvv...v>.v.>v.>.v>>.v.v>vv.>..vv>.v>v>>>v.v...>v>
|
||||
..v..>v>.v..v..v>v.>v.v.>v>...>>v..v......v.>>>>.v.>.v.>v>v..>>>vv..>...>.....vvvv..>..>.>>>...>>>v>v..>...v.>....>.>...>.>v...>..........>
|
||||
>.....v.>..>.>>......>vv..v>...v...>>..>.v>>v....v>>...v>......v..v...>...>.>v.>.vv.>....>...v..>>>..>.>...v...vv.v..vv..>...>....>.......>
|
||||
v.>...>v....>..>>v.vv>.>>>..>vv..v..>>....vv...v..v.v..v>..>>>.>.v.>.v.v>..vv..>>.v.......v>.v.vv..>>v>>.....vv.>>..v>.>>v>...>vv>v>>v..>>v
|
||||
v>.v>.vv>>.>..v..>....v...v...vv>......v.v>v.>...v.vv>..>v.v>v>.v.>>..>>.>.vv>v.v.>.....>.v.>..v>.....vv.>>..vvv..vv.v..v>...>..>..>vv.>..v
|
||||
v>.....>v>>.>vv.vv.>>v..vv.>vv>v.vvv..v.v.>...v..>>v>.>vvvv.v...v.>.vvvv.>.v.v...v.>....>vv>..v..v..>....v.>.....vv.>.v.>.>.vv>vv..vv>v>>>.
|
||||
>vv..vv.>>.vv....v>>vv.v....v>>v.>>.>...vvvv..>.>v..v.v.v.......v.....>>>v..>.v>v>>v.>....vv>>.>v....vvvv.>>...>.v.v>...>>..vv>....v..>>v..
|
||||
....>...v>vvvv...v...>v.v...v.v...v>v>...vv....>>..vv.>....>>.vv.>.v>.>>v..vv>.v.>.>.>>.>.....v...v...v..v...>.vv.v....>.>v>.>.vv>>.vv.>>..
|
||||
.vv>.>...v>...>v>.vv>.....>.....v.>.>.>.>.vv...>v.>.v>.vv.v.>....v..v.>.v>.>v>v...v>.v..v.v....>.v.....vv..>vv.vv.>..>>...>.>..>.....>..v..
|
||||
v..v..>.vvv>.v.>vv.....>v.v...v.>.v.v>v.vvv.....v.>.....vv>...>>...v>>.>>..vvv>..v>>..>.>v>.v>v..v.>...>>v>v>.v.v..v..>v..>>.>..>.....v...>
|
||||
v.v.v..>>>....>.>>>v>>.v...>...v.>.vv>>..v.>..>>>...v..>v>..>>.>..v....>vvv...v>v>>>..>..>v>.>>>..vvvvvv.>vv.v...>.>v..v.>v....v.>..>.v....
|
||||
>>>>..v>v.....>.....>.v..v...>>....>...v..v...v>v.v>>....v...v>.vv>..>vvv.v..>vv.v...>......>v>>v..>...>....>........vvv>>.vv..>>.v..>>v.v>
|
||||
>v...>v>>>...v>.......v>v.vv...v.vv..>v.>.>vv>>vv...>vvv>...>.v>.>..>..>...vv.>>..v..>.v..v.v>v>>..>...v>v.>.>v....vvv...>v>...v.v..>..v.>v
|
||||
>.v.v..>..v.>.>.v.>..v..v.vv........>>vvv>.>v.v..>v.>..v.>..v>>....v..vvv>v..v>>>v>>...>.>>v>vv>....>v...>.>.vvv..>..v.vv.>....>..v..>.>>v.
|
||||
>...>v..v.......v..v..>v...vv.vv....v>vvv>...>>.....>>vv.v.v...>.>.vv>>>.>..>>>..>..>.>v.......>vvvv.>.>vv.v>..>v.>.v..>.v...v>v>.>.v>...>>
|
||||
vvv.>>.>v>....v>.>.>>v.vv...v.>>>>.vv>v>.>vv..v.>...v>>.v>..v.>v>..vv.>>vv.....v.>v>.>....v>....>vv.v.>v....v.v>>.>.v..v..v>.>>..>.....vv.v
|
||||
>>v.>>>...vv.vvv>>.>v>>v.>....v.>.>>v>..>.vvv..>v>.>.>>.vv..v.v>>v.>.v>v>>.v>.......>v>.>>>.....v...>...v>..>..v>vv..vv.>.v..>vv>..>vvv.v..
|
||||
>v...>v..v.v>>.....>....v>v..v>v.>..>.....>>..v>.>v.>.>.v>.>.v....>v...>.v.v.>vv.v.v.v..v>..v>v>..vv.v>...vv.v.vvvv>.>...>v...........>....
|
||||
.vv.>v.v.>>>>v..v.vvv>...v..>>.>v.>>v>>>.>v>.>.v.>...>..v>>>.....>v.v..v>.v..>.>.v>..v.v...v.>....v..vv.>>..>.vv>.v..v..>...>.>..>>vvv.v>>v
|
||||
.v.v>v.v.v.vvvv..>...v.vv.>vv..v>vv>>>..v>.v.vvvv..v>.>....>...>vvv>>>.v.>v>v.vv..vvv.v.v>.v.......>...>vv>v..>...>>...>.>v>>v..v.>....vvv>
|
||||
v>.v........vv>.v.....>.v...>.>..v>.........>.>.v>>....>>.>>..>..v.vv>>v...v..>v.v...v.v.vv.vv.....v>.v>>v.v>v>>>....>v>>>>v>v..v.>vv.vv.>.
|
||||
>vvv....>...vv.>>..v>>>.>>v....>...>.>vv..v>v.v.>>.v>.vv.>v>>.>v>....v.vv.v...v>.v.v>..>...>.>v>...v.....>v.>.v>....>.>.>.v.v>v.......vvvv.
|
||||
v..vvv...>>.v....vv.>.vv.v..v.vvv.>>>>..>>..>.....>v...vv.>.v.>vv...v>..>v...v....v>vv.>.>v..........>v...v>v..v>v..>.....v>.v>..>v......v>
|
||||
vv.>.>vv>v..>v>.vv...>.vv..>.v.>>>.>....v>v>>>>..v>....>vv..vv.>.v>.v.>...>.v.v>v>v>v.>..>v......v.vv>..>.>..>..>.v>vvvv.>...vv.>.>vvvv>>>>
|
||||
>..v...>v.vv.>>vv>>.>.>....v>...>v...>....>..v.....v.v.>>>>.>.>.>>.>.>..vv.>>vv..>...>>>.v....v.>>.vv..v>.>>>.>v..vv..>>>.>vv>>.....>vv.>..
|
||||
>.>>..vv>.>v.>>v...>..v>...>..>.>v>>v.v.....>.>..>.>v.v>.....vv>v>v..>v......>v..vv...>>>>>..v...>....>....>v.v>..>v.>.>.>.v.vvv..>>.v>v.>.
|
||||
>....v>>v>...>v.vv>>v..>>..v....>vv.v.v>.......>v.v.v.>>.v>vv>>..v..>...>.>......>>..>>.>....vv.>.v>>....v.>...vv.v>.>.vv.......vvvv......v
|
||||
.>..vv.....v....>>...v>.v.>>.vv..>.v...v.>>v>>>>vvvv....v....v.vv..v.vvv>>..>...>v.....>....>....v>v...>..>>..>..v.v.v...>>>.v.vv.v...v....
|
||||
..v.vv>.v>.v....>.v..>>>>v>.>vv>.....>v..>....v.>.v...>.v>>.>..v>v>...v>....>>.v..v...v.....>v.>...vv>>.>..v>.vv>v>v>...>>..vv.>..>.v.>.>..
|
||||
..>vv>.vv.v>v>v>.vv..>>>>..>>..>v>v>vv>.>.v>v.>>vv.>..>.vv.....>..>>.v.>..>.v.>.....v.v.vv.vvv..vv....>....v>.v...v>.>>v..v...vv.>...>.>.>.
|
||||
.>>>....>vvv......v>...>v.>vv.v.>>vv>.....v.v.....v.>.>.>..>>.>vvv..vv>.>>...v>..v>.>vv>>......>>.v>..vv..v..>v>v>.>.>.>>..v..v....vv.>.v.v
|
||||
.>.v..>.....v>v>>.>.>.>>>v>v..>....v....>>vvv.>>...vv>>v.v..v.>.>.>v.>..>>>v...>vv>.v>.vvvv..>.>.vv>.v..>.v..>..vv..>>>..v>>.>..>.vv>v.>v..
|
||||
..>v>>.v.>.v>>v>v..v.vvv.v..>>>v.vv.....v.v.>.vv>.>vv.v>.vvv..v.>.v.>v.vv..v>.>.v.vv>>...vv.>v.>.>.vv.>v.vvv....vv.....>...v>..v.>v.>v..vv.
|
||||
>.vv>.v>...v.vvv...vv.v>.vv>.v>vv>>v>>>>....>..v..v...v>v.>..v..vvvv>>v..v>v.v..>.>v...>...>v>>v.v.v>.....>v.v..>..vv>...>>.>...v.v..v.....
|
||||
..>vvv.v>.>>v...v.>>v.>vv..v...v.>.v>.>v.v...>>...>.>>.v....v>v....>.>.vv>>.v>v.v.v.v..v....v.>vv>...>..v>>....>v..v.>v.>>.>.>.>.v.vv..v.>v
|
||||
..>.......vv>v...>.>.>........v..>.>..v..v..v.>>.>>.v..v.>.>.>.v..>...>v.>v..>..>.v>>.v.v..>..vv.v>.>..v.>v>...>..vvv.v.v.vv.vv>>.v>>..>...
|
||||
v..>v....v.v>.>.>v..>v...>>.>.v>>>>v.v>>vvvvvvv.v.>vv.v...>v>.>..vv..v..v....v......>>v..v..>v...>.vvv.>...>v....>.v.v..>..>...v.>...v.vv>v
|
||||
>....v>.vv.....>>v.>>>>>.>.v..>.>v......>>>.>>...vvv......>.>>....v.>v.>..v>>>vv.>..>v>>....>.vv.>...v...v.v..>vv.>..v...v>.>v>.>>.>>.....>
|
||||
>.vv.v>.....v..>v...>..v....>>...v>......>>v>vv>...v.v....v>v.vv.v.v>...v...>....v....vv..v.>...>.>.>>>......vv...>v>vv.v...>v.v>..>..v...>
|
||||
vv>.v.....v>.vv>>..>..>.>....>>.>.>v...>>vvv...v..>>.v..v..>>v.v..v>>.>.v..vvvv.>vv>>.>....v.>..v>...v>v..>>v.vv>.>..vvv...>>.v...v..>..v..
|
||||
>>v....>>.....vvv...v>v.....v...>>>>...v>...>>>>v...v.v.v.>...>vv.........v..v>>v.v>v>.>>>>>.>vv...>..v.vv.v>..>.>.v.....>>v..>v>v.>v.>v>.v
|
||||
..>......v.....>vvv>....>>v>v....v>.>v.>v..>vv.vvv...vv..v.v.v.>...v.v>v.>>>....vv..>v...v.....vvv..v>.vv>v...v>.v.vvvv....>.>v.>v.>vv>vv..
|
||||
>v...v.>....>.>.v...>>v>..>..>..vv..>.>>vv.v>.>>..>.v.....>>.>>v.v.>vv>v>.....vv.>>v..v>...v>v...>...>.v>..>>v>.>>vv>v>.>.v.vv.>>>.>v.v..>>
|
||||
>.v>>.v.v>v>.>>..v>>.v>.v>v.v>....vv.vv..v..>...v.v>>..>vvvvv>.>.v..>>>..v..>>..v...v...>v.>.v.vv>.v>..>..>>.>.>.v.v..>v>.v.v>>v.vvv...>.v.
|
||||
....>.>...>vv.vv..v...v.>>>...>vvv>>.>.v.....vv>vv.>v.........v>v..v..vv.>..v>v.>v....v.>..>.....v..v>>>.....>.>>>vvv...vv>.v..v..vv>.>..vv
|
||||
v..vvv.>.>>....>v..v..v..v>>...v...v.>.v.>>.v..vv..>vvv..v....v...>.>>vvv>..>v.v.vv.vv.>.>.>vv..v>>>v.v.>......>.......v.v.v>.>v.....v.>v..
|
||||
v.vv.v.>>.>v.>vv>..>.v.>>v>.>v>.>.>v>.>.v>>.v..>........v.v..v..>>.v..>...v.v.>v>...>v.>.vv..>>.>v....v.>..v..v...vv..>>v..v>>vvv..v.v...>>
|
||||
>v..v>>v.>.>v..>v>..v...>...>v.v.>>..>v>.v>.>..v......v...v>>.>..v..v..v.>>....>>>>....>>....>.v>v.v>.v..>.>v>.>.v.v...v>...vv>>>..vvv>.v.>
|
||||
...>...vvv>>..>>.>vvv.....vv..v.v>.v..>>.v>>>vv>>v>>..v.>..>v>>v.>v.>.v>>vv>vvvv>.vv.>>.v....>..vv>....>>.>v>..v.>..v>......vv.v>v>.v>..>..
|
||||
.v>..v>>..v.vv.v..v>.>.v..v.v..vv.......>.>...>.>..>v.vvv...v..vvvvv.>>.v....v.>v.vvv>v>.>.>..v.vvv..>..>>v..>....>....>v.>...v...vv..>v>v.
|
||||
vv.v>...v>>.....>v>v...vv>.>.>>.vv..v...v.>.>..>.v.v>>.>..>v...>.v..>.v>.v...>...>.>vv..>vv....>.>.>.>>.>.>>>>.v..>.vv...>>v..>vvv..>.>v>..
|
||||
>..>v>.>v.>vv.>vv.v.v>.>.v..v..>v>>.>..>..>.v>.v.v.v>>..>....>>.>>>v.v....v.>>>...>v>v.>.>.v.vv.>>.vv>..>.v........>v>v.>..>.>.>>v.>..>.v>v
|
||||
..v>>>>v.>vvv>...v..>.......>.v.>vv>v....>.>>>..vv.>..>>v>>v>.v>...v.>...v.v>v.....>v>.vv.>>>v>..vv.....vvv..v.>.>.v..>.>.v.>..v>......>.>.
|
||||
>.v..>.>..v>vv.v..vv..vvv>>vvvv..>v>v>v>v...v.v>>>>v.>>v.>v..>vv..v...>v.>v..>vvv.vvv..v...vv...>.>>v.v.....v..v.>.vvvv>v..>v.>.v.......v..
|
||||
v.v.v.v.v>.>.>v.>.v>>vv.v.v>.>.v>>..v>>>....vv.>...>...v.vv>.>...v..vvvvvv.v..v.>.v>v>v..vvv........>..>>...>..vv>v.......v>>v..v....v>.v.v
|
||||
v..>>.>..>...>.v>vv...>......v>.>..>v....>v....vv..v.>>.>.>>.......>v..v.>>.v.v>..>.v..>v..>.>.vv>.vvvv>.v>.v>v.>>v.v>v>vvv...v....v>v>.>>.
|
||||
.>>.>v.v>..>.>v........v>.v.v.v>.........>v>.>>v..>vvvv.>v.>>..v...>.vv>..>....>.vv.vvv.>>>..>>.v>v.v>.>.v>....vv...>v>>.....v.>..v.>.>>>v.
|
||||
>v>>.v>.v>v...v..v..v>>...>.>>>..>..>...vv.>v>>>.v....>>.......v..v...>.v..v..v.>vvv.......>vv>v.....v..>>v..>.>vv>>..v>.v..>..>.v..v.vv>.>
|
||||
v...v>v.v.>>.vv.>>...>...vv>....v.v>..>>..>>>...>>.>..v>v.>v..>..>.v....>.>..>.....>.vvv.v..>...v..v>v..>.v....v>.vv>v.v>.v.>.....v....>..>
|
||||
v....v>.v..v>v>.v>vv.>.>v>.......>......v>.v.>..v.>...>...v...v.v.>...v>>v>.v.>v.>>...v>v.v.v>...v>v.vv.>v..>>>.>v>.>v.v.v...>.vv..>..>.vv.
|
||||
v....>.v>..v>.v>.>..>..>.>vvv>>.v...v..>vv..>......vv.v..>>...>>.>>..>v...vv..>.v>.>v>v.>.>>...>.v.v.>..v>>>..>.vvvv>..v.>...v.>.>..v>.v...
|
||||
>.vv>.v.>v....vv>.>>.v>>v....v.>v..v..>>>..vv..>.>>>.>>.>v.>>.v>>..>.>>...>.....>.>v..>.......v..vv..>>v.>>...vv>>.v.v>....v.v>>.>>..v>v.v.
|
||||
>v...>>.....v.vv..v>.vv..>.....>....v.v>..>>...>..v..>>.v>>.v>v.v.vv.v>....v....>>.v>....>>vv......>>.v>..>.vv.>..v.v>.v>.vv.>...>>.....>vv
|
||||
v>v...>.>.>....v.vvv.>vv>.>.>..>>v....>v.......v...>v.v.v...>v>.>.....>v....>.v..v.v.....>.vvvv.v.vv>.v>>...>...>..v>>>>...v>>.v..>v..v>...
|
||||
..>>v>>vv..>.>>.>...v>>>vvv>v..vv.>...vv..vvvvvv.>>..>v..>.>>>.v.v.vv..v.v.>.......v>.vv...v>.v......vv>v.>v.v>.>>>v...>>vv>.>.>....v..>v>>
|
||||
..>v.v..v>..v.>vv>vv..>.v.>v....>....v..v>>v>.>.vv....>v..v>..v..v>.v>.>>>>>.....>>.....>>>v.>>.v>..>>vv..>>>v.v.vv..>>..vv...>>.>>...>v...
|
||||
..>v....v.>v.v.v>.>>v.v>...>>v.v>...v.v...>vv.>>..>>......v.>>vv...>.>....>v>.v...v....>.>.vvv.>>>v..>>vv.vv..>v.....>>....v>>v>.....>....>
|
||||
v........>v..>.>vv....v.v>>.v>.>>v>.vv..>...>..>v.vvvv.v.>....>.v>>.>v>>>.v.>.>.....v.v>v.v>v.v.>v>..>v>>v..vv>>>..v..v>>.>v...v>...v..>>v.
|
||||
.>..>>.v.>v......>.vv>v>.v.>.v.v..>>..vv...v..v.>>.v>.v>.....v.>..>.v.>v>.>..>v.v...vvv..v..>.>.v>vv>.v>....v>.>v..v>v>>>.vv.....v...>v>>v.
|
||||
.....v>..v>>>v.v..>>vv.v..v>.>...v..>.v.>>>v.>.v>.v>v>.>>..v.....v..v>vv.>>...v.v.v.vvv>>>>..>vv..v>....>...>>.>....v>.>>..>>....vv>.vvvv.v
|
||||
.vvv..>.v>vv>>>.>.v>..>>.>..>.vv.>....>.v..v>vv...vvv..vvvv.>.v.v.>>vv>..>>........>>..v...>.vv...>v>.v.>v.v.>..>.v>>>>.....>.....v>.>..>.>
|
||||
.vv.>>vv.v...v.v...>v>>>>v..v...>>......vv.vv...>v..vvv.vv.v...v.v>....>v.v.v.>....>...v..>v...>v>....v...>....>.>>.>..>>v>.v>v....>..vv.v.
|
||||
v>.v.>v...vv.>.v.>.....>.v.vv.>>.>....>..v.v.v..v>v.v>vv.>>.>v>.>....v.>.>.>v..>.vv..vv....>.v.>..>vv.vv>>v>...>v>>>v>...>v.>v>.v>.v>.v>v..
|
||||
..>>>.vv.v..>.>..>....>...>>>.>..>>>v..>..v...v>v>.>.vv....v.v......v.>.>>>.v.v..vv.v..>.>..>>.>>...>.>>..v.vv..v>.>vv..v>.>vv.>..>.>..>...
|
||||
..>.>...vvv.v.v..>.v.>>v.>v>>....>..>.>.v>>vv>.>>.v...>...vv>>>vv.v...>.vv..v..vv>..>v..>.>.>.>.>v>>.>..vvv>.>v....>v....v>>>............v.
|
||||
v.vv.>..>vv...v.......>......>>>v.v>.....>.v>>.v.>..........>>.v.>.>..v>.v.v...>..v>.>>>>v>..v>v.>.>...>.>....vvv.....vv.v..>.......v>v>.>>
|
||||
.>.vvv.>.>vvv...>>.>v.v...vv.v.v>...v..v>>v.v..v.>>vvv...v>>>.v...>..>v..v>>v.>v.>.v.v..v>v.>...vvv..>v......vv>>>>.>>.....v.>>>v.vv.>..v.>
|
||||
.vv...>>>..vv..vvv....v>v.v>v>v.vv.>>vv.>vvv>..>...vvv...v.>.>...>...>........v.v>.v>>...v>...>>.>v.>...>.vvv>...v>..v...v.>v>>..>>..v.>v>.
|
||||
.....>>.v....v..v>vv.>..v...>vvv>..>....v>..>.>..>v.>v....v>v...v...v..>...>>v.>>.vv..v..>.v..>.v.v>v>vv.>.>vvvv...>.v.v.v....>>v..vv.>>.>.
|
||||
....v>.v>v>.>.>.v>.>...v>...v>>>...>>.>v>.....>>.>..vv..v..>>..>.>v.........>v....v..v.v>...>....>v.>v>>....v..v..>>v.>....>....>v.>..>.vv>
|
||||
.>>.v.>.v.v.v...>vvv>..v.v>v..>v..>v...>....vvvv.v>>v.>>v...>..v.vvv..>..>>v..v...>v>>vv.>>..vv..v..v>...v...v....v...v....>vv>>.vvvv>.v...
|
||||
..vv..vvvv.vv...>.v>>.>v>>>>>.v.>..>.>.v.vv>>.>>....vvv>.>>.v.>.v.vv>v>v.>....>v.......>.>.>.vv..v.v>v.v...>..v.>..v>...v>v>>>......v>..>v.
|
||||
>.>>.v.v.>v>v.v>.>vv..>>.vv.>>vv>....>.v.....v.>v..>>>.>.>..v>.>v...v...v.>..>.v>v>..vv>..v.....v.>.v>.>>....v...>.v.....v>vv.....>>>v.v>.v
|
||||
.v>.....v...>.>...v>v.v..v.>v.v.>>v>.vvv>.>.v.vv.>v>v>v>v>>.vv..>>v.vv>.v>>.>vv..v>..vv.vvv.vvvv>.>.v.>.>.>vv>.>...v>.v>v...vv>v..v>v..>...
|
||||
...>..v.......>v.v.v>v.....vvv...v..>>vvv>.>...>..>.v.v.>>.v.v.>.v..vvv..vv>v>v..>..v.>..>v.>.>...v>.vv.>>.>v.>..v>v>....>.>.vv..v>....vv..
|
||||
.vvvv.v.>.v..>.v.>v.v>>..vv...>>v.>>.>.>.>v.v.v.v>v....v..>v....>>.>v>v.....>.>..vv....>.vv...vvvv.vv.vv...vvv.>.v>v.>.v>..v.v>vv.>..>.....
|
||||
>..v.v..>.>>.v>..>...>.>>.>>.>..>.>....>v.v>.>.v.....v>.v>.vv.v>...vv.>.vvv>>v>.>.v..>.>.v>v>.>..v..>.>......>>.......vv.>..>.v>vvvv..>vv.>
|
||||
v....v.vv...>.v.v..>>.>....v>>........vv.>.>>...>.>...v..>.v>..>..>>v>....v.v..>..>v.vv.>.>>.v.>>.>vv>>.>v>.v>>>.v....>....>...v>>..v..v.v.
|
||||
v.v.v...>>v...>>>.v.vv.vv.vv>>>.v.>...>>v.......>v.>vvv.>>.vv.......vv...v>..v>.>>.v..v>...>.v..vv.v>..>v...v.vv>.>>.v..>.v.>.>..>>.vv>...>
|
||||
v..>vv.>v>.>v.>.>>>vvv>..v.>>>v>.>v....v.>v>.vvv>..v>....v..>>..v..vv.>...v.>.v......v.>.>.....vvv..>vv>.>...>.vv>....>>..v>..v.v..>>v..>v.
|
||||
.....v.>>vv.v>>.>vv>.>..>...v>>..v>....>.v.>.>...v>..vv>v>..>..>.>......vv>.>.vv>.....v>...vv..>..>v.v.>.>.vv>.vv.vv>.vv.v>>>..>....>.>.>v.
|
||||
.>v..v.vv..v.v.>v..>.v>>v>v.vvv>>...vvv.....vv..>.v>...>>>.v....v>>.>v>.v.vv>....>>>>..v.>.>.v.....v>>v..v....>..v....v>...>>v.>v>v...v.v..
|
||||
.>v.....v..>.v..>...v..v.>vv.vv.>.>v.>...>...v>...v.v.>..>v..>..>v.v..>.v.v>v.>.v..v......>...v.vvv.v>>v.>.v.vv..>>v..v>>.v.>>.v.v>>>....vv
|
||||
...vv.>v.>..v>>..v.>.>vv.vv...>.....>v>.....v..v..v.v.>>..vv.>v.>..v........v.v..>>v.>v.v..>...>v.v..vv>v.v.v>..v>.....v.v.>.v....>>>v>>..v
|
||||
...>v.v.>...vv>.v.v.....v..v....>>..v.>v>vv>>.......>v..v.vv..>.>>>vv>v>>>.v....vvvvv.v..v>.v.>v>v>>..v..vv..v.vv>>v..>.>..>....>..>.>>.v>.
|
||||
>>..>>...>..v>vv.>>>...vvvv....vv.v>.vv.>.v.vv>>..vv..>..>>>..>>..vv>>.>vv>>.>.>..>vv.>.>v..>>.>.v>....vv>v>..vvv.vv.>v.>v>>....vv.vvv...v>
|
||||
..>>v>..>>.v>vv>....>..>>.v>vvv.vv..>.v>v..v.>>.vvv>.>.>v...>v.vvv.>.v.>v>v.>..>.v>>.>.>v..v..>v>>v>.v.>.>.v.>...vv...v.......vv.....>.v.>.
|
||||
>..vv>>v...v>v.>vv>.v....v.vvv.>......>v.v>.vv>..>>>v....>>>.>...v>>>....>...v..>..v>vv..v>v...>vv>.v..v..v>.>.>.>..vv>>v..v>....>>..vv..>.
|
||||
.>.>v>vvv.v..v.>v.>...v>.>v..>vv.>..v.>v>.v...v>.>>vv..........v>.v.vvv.>>>..v>vv.>>>v>..v....v..>..v.>>..>.>.v>v.v>.v>.v...v.>>.v....vv...
|
||||
....>>.v..>.......>.v.v>>>vv>>..>v>v...>.v..v>.vv.v>>vvv....>vv>v>..vvv.>>>.v..>>.v.>.....>vv>>....v>vv>v..>.>...>.>>v......>..>v..v....vv.
|
||||
.vv..>.>..>..v>...>v.vv.>..>v.>..v>v..vv>>>..vv..>vvv.....>...vv>.........v..>..v..>>.>>v.v...>>v>v>..v>>.v>.v..>v.vv>vvv>>>..v>.vv..>>.v.>
|
||||
.>vv.v.v..>.>...>..>v>..>...v.>...>vvv.>....v...>..vv...v>...>vv>v.v..>v..>v.>...v.v>v.>.v>v>>>v>..vv..v.>>v>.v>..v...>v>>..>.v.v.>>..>.v.v
|
||||
...v>..v.v..v>vv.....>..>..>>......v.v.>v.....>v.v...vv.v.>v>>>.....vv.>>v>>......v..v>v..vv>>v....v..>..>v>>>.v..>.>...v...vv>vv>v...>.v>.
|
||||
v.>>v.vvv.vv.vv.>.>.v.v>v.v>..v>v.>>>..>v>.v....>v....>>.>>..v.vv...v.v....>.>..>........vv.v.>..>>.v.v>...v>v...vv.v>>.>v>>.>>vv>.v..>v>vv
|
||||
v.>v.>v>.vvv.>v..>..>>>...v.>.v...v.>>.>..>>.v.>v..>.vv.>....>>vv>....>..>>vv>>....>v>.v..>.v>.>...v..v..>v>>>..v...>...>.>v>.>v.>.>.>.>.vv
|
||||
vvv.>>v>>v>.>..v>v>..v>v.>>v.v...v..v.>vv...vv.>.v>>>vv>.v.>v..v>>.>>vv..v....>.>v.>>v.>.>....>>.>.v.vv>.vvv..v...>..vv..v......>vv.>>>v>..
|
||||
.>.>.vvv....>v>>.>.v.vv.v>>.>>...>v>..v.>v.>>>>v.v>v.>v...>>>>>...v....>..>v.>>>.......>...>v.>vv.>.v.vv..>>......v.>..>...>.>v.>v>..v.vv>.
|
||||
..v>..>vv.>v>>..v.>.v....v>.v>>v.v...>vv....v..>.>....>.>v.v.v.v>..>.>.>.v.>>.v..v.>>v.vv>>>v>.v..v...v.v>vv>>vvvv>.>...>v.v.v..>>>.v>>.v.v
|
||||
.>...v>v>>..v.>>.>v.vv>.vvv>.v....v>..v.>.vv..>.>>.>.>v>...v.>v>..vv>.vvvv>.>....>..vv>.v.v..>v..v>...>...vvv.v>>>>>>..>.>.>...>..vv.>.v..v
|
||||
v...>..>.>vv..>.>v..v.>>.v>>>.v>>...>.....vvv.v.>v..>..v..v...vvv.vv>..v>.>.vv>v...vv>>>v...v.>v....v.v..>..>vv.>v>vv.vv>>>..>v.>vvv.>v.>..
|
||||
>v...v...>>.v.>.>>.v>>.vvv>>v>vv..>>..v>>.>..>.>v>>>v...v..>.>v..>....vv..>>.>>......>v>>>..v..v..>>>.>....>......v..>>v>>.>>...vv.v.>vv>v.
|
||||
>.....v.....>v>.>.....>v.v.>.v>vv..>.>>....vv>..>v..v>.v...>.v.>v>v.>vvv..v>>v..>..v>>.>...>.>>.>..>.vv>>.vv..>>v>>.>.v.v.v.>vvv>v>>v>vv.v>
|
||||
v.>..>v.v>v.......>v......v...v>.vv..v>...>.>.....v.>..>.>....>...v.v>v.v.....>....vvv>..>v.v.>vvv.v.v.v>>>..>v>.>.v>..v.v>.>vv.>.>.v.vvv.v
|
||||
v...>.vv>.v..>.v>.....>>vv>.v..>>>v.>>..>.....>v...>>..v.>.vv.>..>..>v.>>>>>vvv....vv.>v..v>..>.v>..v.>...>v..v.>..>v.>.vv.>vv....>>v.vvv>.
|
||||
>..>>...>.>.vv>..>v>..v..v>.v.>.>vv.>v>.>>..vv.>..vv.v>vv>v>.vv..>>>..>v...>.>v>v>>>.........>>>...vv.>.....v.vv>.>.vv>.....v.v..>...v.vv..
|
||||
v..>>..vv..v..>...>>.>>>..>..>.>v..>..>.>.vv.>>...>.>.>v>.>..>>.vv.>..>.vvv>>....>>>>....>v.>>>>.>>..v.v.>vv..>..v..>.vv>v....>vvvvv>v....>
|
||||
v...v.>v>.v...>>v.>.v>>.v.v...v.>..>..>>>...v.......v>>>>>.>.v.v..>...v.>v>v.v....v....vv>vv.>.>v>vv...v..vv.v.>>v..>.v.v.v...vv..v.>v>.>v.
|
||||
.>v>.vv.v.>.>.>>v.>>...v.vvv.v>...>>.>>.>.v...v....>..vvv.>....v.vv.>..v...>>..>...vv.>.>v>v..>>>.v.....>.....vv.v..>.>>>v.vv>vv.>......>.>
|
||||
120
2021/25/src/main.rs
Normal file
120
2021/25/src/main.rs
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
use std::fmt::{Formatter, Display};
|
||||
|
||||
|
||||
#[derive(Debug, PartialEq, Clone)]
|
||||
enum Place {
|
||||
Empty,
|
||||
East,
|
||||
South
|
||||
}
|
||||
|
||||
impl Display for Place {
|
||||
fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
|
||||
match self {
|
||||
Place::Empty => write!(f, "."),
|
||||
Place::East => write!(f, ">"),
|
||||
Place::South => write!(f, "v")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Place {
|
||||
fn from_char(c: char) -> Place {
|
||||
match c {
|
||||
'.' => Place::Empty,
|
||||
'>' => Place::East,
|
||||
'v' => Place::South,
|
||||
_ => panic!("Unknown char: {}", c)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Board(Vec<Vec<Place>>);
|
||||
|
||||
impl Board {
|
||||
fn push(&mut self, row: Vec<Place>) {
|
||||
self.0.push(row);
|
||||
}
|
||||
|
||||
fn tick(&mut self) -> bool {
|
||||
let mut moved = false;
|
||||
let mut new_board = self.0.clone();
|
||||
for (y, row) in self.0.iter().enumerate() {
|
||||
for (x, place) in row.iter().enumerate() {
|
||||
match place {
|
||||
Place::Empty => (),
|
||||
Place::East => {
|
||||
if x + 1 < row.len() && self.0[y][x + 1] == Place::Empty {
|
||||
new_board[y][x + 1] = Place::East;
|
||||
new_board[y][x] = Place::Empty;
|
||||
moved = true;
|
||||
} else if x + 1 == row.len() && self.0[y][0] == Place::Empty {
|
||||
new_board[y][0] = Place::East;
|
||||
new_board[y][x] = Place::Empty;
|
||||
moved = true;
|
||||
}
|
||||
},
|
||||
Place::South => ()
|
||||
}
|
||||
}
|
||||
}
|
||||
self.0 = new_board;
|
||||
new_board = self.0.clone();
|
||||
for (y, row) in self.0.iter().enumerate() {
|
||||
for (x, place) in row.iter().enumerate() {
|
||||
match place {
|
||||
Place::Empty => (),
|
||||
Place::East => (),
|
||||
Place::South => {
|
||||
if y + 1 < self.0.len() && self.0[y + 1][x] == Place::Empty {
|
||||
new_board[y + 1][x] = Place::South;
|
||||
new_board[y][x] = Place::Empty;
|
||||
moved = true;
|
||||
} else if y + 1 == self.0.len() && self.0[0][x] == Place::Empty {
|
||||
new_board[0][x] = Place::South;
|
||||
new_board[y][x] = Place::Empty;
|
||||
moved = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
self.0 = new_board;
|
||||
moved
|
||||
}
|
||||
}
|
||||
|
||||
impl Display for Board {
|
||||
fn fmt(&self, f: &mut Formatter) -> std::fmt::Result {
|
||||
for row in &self.0 {
|
||||
for place in row {
|
||||
write!(f, "{}", place)?;
|
||||
}
|
||||
writeln!(f)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let input = std::fs::read_to_string("input").unwrap();
|
||||
let mut places = Board(Vec::new());
|
||||
let lines = input.lines();
|
||||
for line in lines {
|
||||
let mut row = Vec::new();
|
||||
for c in line.chars() {
|
||||
row.push(Place::from_char(c));
|
||||
}
|
||||
places.push(row);
|
||||
}
|
||||
println!("{}", places);
|
||||
println!("");
|
||||
let mut sum = 0;
|
||||
while places.tick() {
|
||||
println!("{}", places);
|
||||
println!("");
|
||||
sum += 1;
|
||||
println!("{sum}\n");
|
||||
}
|
||||
println!("\n{}", sum + 1);
|
||||
}
|
||||
9
2021/25/testinput
Normal file
9
2021/25/testinput
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
v...>>.vv>
|
||||
.vv>>.vv..
|
||||
>>.>v>...v
|
||||
>>v>>.>.v.
|
||||
v>v.vv.v..
|
||||
>.>>..v...
|
||||
.vv..>.>v.
|
||||
v.v..>>v.v
|
||||
....v..v.>
|
||||
1
2022/.gitignore
vendored
Normal file
1
2022/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
*/rust/target
|
||||
4
2022/.vscode/settings.json
vendored
Normal file
4
2022/.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"deno.enable": true,
|
||||
"deno.unstable": true
|
||||
}
|
||||
36
2022/1/README.md
Normal file
36
2022/1/README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# Day 1: Calorie Counting
|
||||
|
||||
The jungle must be too overgrown and difficult to navigate in vehicles or access from the air; the Elves' expedition traditionally goes on foot. As your boats approach land, the Elves begin taking inventory of their supplies. One important consideration is food - in particular, the number of Calories each Elf is carrying (your puzzle input).
|
||||
|
||||
The Elves take turns writing down the number of Calories contained by the various meals, snacks, rations, etc. that they've brought with them, one item per line. Each Elf separates their own inventory from the previous Elf's inventory (if any) by a blank line.
|
||||
|
||||
For example, suppose the Elves finish writing their items' Calories and end up with the following list:
|
||||
|
||||
```
|
||||
1000
|
||||
2000
|
||||
3000
|
||||
|
||||
4000
|
||||
|
||||
5000
|
||||
6000
|
||||
|
||||
7000
|
||||
8000
|
||||
9000
|
||||
|
||||
10000
|
||||
```
|
||||
|
||||
This list represents the Calories of the food carried by five Elves:
|
||||
|
||||
- The first Elf is carrying food with `1000`, `2000`, and `3000` Calories, a total of `6000` Calories.
|
||||
- The second Elf is carrying one food item with `4000` Calories.
|
||||
- The third Elf is carrying food with `5000` and `6000` Calories, a total of 11000 Calories.
|
||||
- The fourth Elf is carrying food with `7000`, `8000`, and `9000` Calories, a total of `24000` Calories.
|
||||
- The fifth Elf is carrying one food item with `10000` Calories.
|
||||
|
||||
In case the Elves get hungry and need extra snacks, they need to know which Elf to ask: they'd like to know how many Calories are being carried by the Elf carrying the **most** Calories. In the example above, this is `24000` (carried by the fourth Elf).
|
||||
|
||||
Find the Elf carrying the most Calories. **How many total Calories is that Elf carrying?**
|
||||
2243
2022/1/input
Normal file
2243
2022/1/input
Normal file
File diff suppressed because it is too large
Load diff
24
2022/1/part1.ts
Normal file
24
2022/1/part1.ts
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
|
||||
const text = await Deno.readTextFile("./input");
|
||||
const lines = text.split("\n");
|
||||
|
||||
let acc = 0;
|
||||
let max = 0;
|
||||
for(const line of lines) {
|
||||
if(line === "") {
|
||||
if(acc > max) {
|
||||
max = acc;
|
||||
}
|
||||
console.log(acc);
|
||||
acc = 0;
|
||||
continue;
|
||||
}
|
||||
acc += parseInt(line);
|
||||
if(isNaN(acc)) {
|
||||
console.log("'" + line + "'");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
console.log();
|
||||
console.log("max", max);
|
||||
22
2022/1/part2.ts
Normal file
22
2022/1/part2.ts
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
const text = await Deno.readTextFile("./input");
|
||||
const lines = text.split("\n");
|
||||
|
||||
let values: number[] = [];
|
||||
let acc = 0;
|
||||
for(const line of lines) {
|
||||
if(line === "") {
|
||||
values.push(acc);
|
||||
acc = 0;
|
||||
continue;
|
||||
}
|
||||
acc += parseInt(line);
|
||||
if(isNaN(acc)) {
|
||||
console.log("'" + line + "'");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
values.sort((a, b) => b - a);
|
||||
console.log(values.slice(0, 3));
|
||||
console.log(values.slice(0, 3).reduce((a,b) => a+b,0));
|
||||
2500
2022/2/input.txt
Normal file
2500
2022/2/input.txt
Normal file
File diff suppressed because it is too large
Load diff
39
2022/2/part1.ts
Normal file
39
2022/2/part1.ts
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
const input = await Deno.readTextFile('./input.txt');
|
||||
|
||||
const values = {
|
||||
A: 1,
|
||||
B: 2,
|
||||
C: 3,
|
||||
X: 1,
|
||||
Y: 2,
|
||||
Z: 3
|
||||
};
|
||||
const userMap = {
|
||||
A: "R",
|
||||
B: "P",
|
||||
C: "S",
|
||||
X: "R",
|
||||
Y: "P",
|
||||
Z: "S"
|
||||
};
|
||||
|
||||
let score = 0;
|
||||
for(const line of input.split("\n")) {
|
||||
const opponent = line[0] as (keyof typeof values);
|
||||
const player = line[2] as (keyof typeof values);
|
||||
const ov = values[opponent];
|
||||
const pv = values[player];
|
||||
|
||||
score += values[player];
|
||||
|
||||
// simple rock paper scissors
|
||||
if(ov === pv) {
|
||||
score += 3;
|
||||
} else if(pv - 1 === ov) {
|
||||
score += 6;
|
||||
} else if(pv + 2 === ov) {
|
||||
score += 6;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(score);
|
||||
75
2022/2/part2.ts
Normal file
75
2022/2/part2.ts
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
const input = await Deno.readTextFile('./input.txt');
|
||||
|
||||
const playerValues = {
|
||||
A: 1,
|
||||
B: 2,
|
||||
C: 3,
|
||||
};
|
||||
const userMap = {
|
||||
A: "R",
|
||||
B: "P",
|
||||
C: "S",
|
||||
|
||||
X: "Lose",
|
||||
Y: "Draw",
|
||||
Z: "Win"
|
||||
};
|
||||
|
||||
const resultValues = {
|
||||
X: 0,
|
||||
Y: 3,
|
||||
Z: 6
|
||||
}
|
||||
|
||||
function mapFromValue(value: number) {
|
||||
return userMap[Object.entries(playerValues).find(([_, val]) => val === value)![0] as keyof typeof playerValues];
|
||||
}
|
||||
function mapResultFromValue(value: number) {
|
||||
return userMap[Object.entries(resultValues).find(([_, val]) => val === value)![0] as keyof typeof resultValues];
|
||||
}
|
||||
|
||||
function log(...args: any[]) {
|
||||
console.log(args.join("\t"));
|
||||
}
|
||||
|
||||
function logResult(pv: number, ov: number, rv: number, score: number) {
|
||||
log(mapResultFromValue(rv), pv + " " + mapFromValue(pv), ov + " " + mapFromValue(ov), rv, rv+pv, score);
|
||||
}
|
||||
|
||||
log("state", "pv", "ov", "result", "score", "totalScore");
|
||||
|
||||
let score = 0;
|
||||
for(const line of input.split("\n")) {
|
||||
const opponent = line[0] as (keyof typeof playerValues);
|
||||
const result = line[2] as (keyof typeof resultValues);
|
||||
const ov = playerValues[opponent];
|
||||
|
||||
score += resultValues[result];
|
||||
|
||||
// simple rock paper scissors
|
||||
if(result === "Y") {
|
||||
// need to draw
|
||||
score += playerValues[opponent];
|
||||
logResult(ov, ov, resultValues[result], score);
|
||||
} else if(result === "X") {
|
||||
// need to win
|
||||
if(ov === 1) {
|
||||
score += 3;
|
||||
logResult(ov, 3, resultValues[result], score);
|
||||
} else {
|
||||
score += ov - 1;
|
||||
logResult(ov, ov - 1, resultValues[result], score);
|
||||
}
|
||||
} else {
|
||||
// need to lose
|
||||
if(ov === 3) {
|
||||
score += 1;
|
||||
logResult(ov, 1, resultValues[result], score);
|
||||
} else {
|
||||
score += ov + 1;
|
||||
logResult(ov, ov + 1, resultValues[result], score);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(score);
|
||||
3
2022/2/testinput.txt
Normal file
3
2022/2/testinput.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
A Y
|
||||
B X
|
||||
C Z
|
||||
300
2022/3/input
Normal file
300
2022/3/input
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
MVWpzTTrTFNNLtssjV
|
||||
hRJncnJCnhPCnBSbCQRhhQRPFHmsbHLzbLNHsjNNFmGGGsGF
|
||||
lSBQJBBBBcnccnQvBnPQznfrgwlrTZfDwTfWqrrpgMpw
|
||||
sRPgrzSgrSbfTrgspBPsDWWTmdnvdZWZwTmwvdmd
|
||||
tVGpCGqCGjlHcNGVNHZDmnZMWdWMWCdZDvnZ
|
||||
HqpQptLlclLGtlpcjHNhQqfRhrSBrrbfbrSRrsPfBSgg
|
||||
JpjLbQbFPBjDBBJLWltglfBfhhlcctht
|
||||
vNFmsdFsnmzGtWvgzhzc
|
||||
rqwRCCqmCTqHCnqRNTNFsJVMQSjLRbbVVbjQVLbLSV
|
||||
mLNNCNDwBwDnmCwnJwLRvdlqZclRccsgvcZndc
|
||||
QWMtVWbpVlgHHcgMHs
|
||||
VsTVWhThsVQWzjtQPpVWjWbpwJNCJDCzSNNCCCSfmfBCSGLL
|
||||
NbSfHnwDvwwfHwwQsHbWPgrsZsZjRPLRgLWhWP
|
||||
lmMlTGFzVmzqjGLLZWWGhrCh
|
||||
qFclMprqmrvbcnwDQtNQ
|
||||
tWQZFvvtWQWbqQQggZZLvpLrpzDrmGDmmDHPzPzHrfnHTG
|
||||
NMlhlTMccTCVBlRNHzJnzDDmnJmnGGBf
|
||||
NMMSSSSSlNVMdjdNSNNhFwTbvbLqjbtLwWQwZqgg
|
||||
jPwcJwRmmhJpbhNJVgDbrHzzzQzzBQHg
|
||||
tdZqlCnnnlvZCqlnlCSqZdFCHGDBgzsDzssBtHGLQtrHsssL
|
||||
TZZFSdrdlZMFZRMwMPmNcwNmwm
|
||||
nsdhzmDBGQWQPvJPjbbW
|
||||
gCgBqCNpMHTwgwqMPRJJTtWjbFRJFJvP
|
||||
ZlCwBrwgmzhGzDrd
|
||||
sTBHfcnBTnqHRvqPgFFbLtrQTPLjjm
|
||||
GWzpwSJSpbwbNNGJPQrrtrrrrgzLtjzm
|
||||
NNSlCCdplWwplCwSndnssdZfqVbHvfqc
|
||||
rrfHgqnlllRrDgrCbQfszMPtmzPQzFsFMQ
|
||||
JJLGVGjcwVcPQNNNtRPmLM
|
||||
WThVJJWJBdGwBpBTqDrSRCCggShqbSCb
|
||||
TbCqzqzmbCffzDbHRddLbdRFRS
|
||||
ZmvZJPjPwwWNZJGtWSDRRDFWSLhhhMVVWL
|
||||
ZwplGwmptNjZnjvnGGPjJlZppTrTsCczfggBgfgfggCsBrqr
|
||||
gMBBbfBbBMfnMsvRvWJhDsQW
|
||||
ZZqHLzczjjsLzlpjqTprNJvhQpRvtRJJQrtQtJ
|
||||
llZlzZZzPZZqsTZscHczfnSwSPSwwgSBwwSnPwnf
|
||||
chMtcPPgQtthqgvczhMTcCSBLBlGpsFnBnnsGvLplSFG
|
||||
bhRmJWDRmHSmFGBnGBps
|
||||
jdDZWbrDdDbbdbDrRRWwRjZRVqztCzqtcThcTQtgqVMMVzjq
|
||||
flNmNHgcZwTzRLzMLRPlzz
|
||||
nntqBJtFbbCbBVCnBtFjJjhVhLzLvRLvgRRvPvpMpvpp
|
||||
CgJWjJQDjgBtnGNGfcssNfcwNW
|
||||
MrMpMrGBznjPMGCmCrrjdwndfJLQNfdLQNdNggdL
|
||||
sJVcZqvhZtVqhDFFsDJslcdwgwvwQwwQNbbTbwfLLTgL
|
||||
RDDRcsSsstJstVDDqctszzmRmGjpjBRHPmmGHGrj
|
||||
tdplZtlrBGwTlLQQ
|
||||
sfsPPvNhWLQBhGQG
|
||||
zPVfzVbbMcscvVfzzNgcJHnJZgtrrndJqjJqndrL
|
||||
nglLjRCCHLLCnNCLHQnFNQmmVMbVmwMwlMwMMMWwBTsT
|
||||
cqtfcqZpzhSvvBfWwbvrbT
|
||||
PPqpDSqcSJPdPhtPtqZcpPtGjFRFFFNLJFGRgjFbGRNbHn
|
||||
gjtRSLMqLdSgLMCltTSDQcQQqhDcfcfrWDhWrr
|
||||
GwFZCwNzFJsPmFFmZmPPNhvDDfDWWmpvQWWfVDQppW
|
||||
swNGZbPBGwnCgBBlBljl
|
||||
BsrDsnQGwFFQQtfNTBNSffBgBt
|
||||
VJlhWVLlRppLQZTCbtZTttgJ
|
||||
ppLqqRhQdRPhqPVhdPjhljqHFnGnzFrjFFDznHFHrmwwnH
|
||||
CJMmmJLmlshCCdmzjHjPWztgdnjttt
|
||||
GwZvGwrgTcFpzHWjnT
|
||||
GbqrvrRwbrbGbwwZBbgfhmJMmsDJhNRfLChhCh
|
||||
CfgfjCLCgfgFgBhBsccswQwtsQHvBBtc
|
||||
SbSMGbnmDMGJWmRmDmvzwtcscWtQzsrPsvHc
|
||||
DbJdNpJSnMSJmpSSNVqgqgTTFVQTFqdZLq
|
||||
MBMCmlllPSSlmmPPjCMpPgggJcnZgntJsDvHsDZt
|
||||
hrNzhrRNbrhbGRbfpVLRGNqqngvnttngJctgDZJGcZvHvZnc
|
||||
LTTzVqppSmwdTmQW
|
||||
mmlBQmLbsbmRnFnwlqqprF
|
||||
dZScZSZSdHcNMDcJwLqRfppzpzfTpHfF
|
||||
JLWJLJJJdMmGtgCWjQjt
|
||||
PPMzpVDblwGVMMzDLLjrcrjdzjdTzLjd
|
||||
RRcCJRcNQRBqtCFBRJJsZWBWrjLWLHZZWndBLWjh
|
||||
qQQtttNqsqqtJRgqQfcpcgDcbggplGbfMp
|
||||
QmmSTQPmLSmjpczMJtwPzg
|
||||
BHHHdwdvDpllvctjZv
|
||||
HdrDHNfrrBDGGBhBNfHNsLFqmbRQSwqmGTLnTbSF
|
||||
gcMmgRQPqqPPsgjFSvctCHvHllSSHcvd
|
||||
JTWfZwhTwzbWwTFTrZnTrDDlDSVtVHLVShtvSHvlHL
|
||||
bWbWBfzTfwrWJNbTrnzfTwJFpmMQgqsFRsQGqRMggPmPBG
|
||||
GqCWpGGLpmpWjbSDGjGGmwCzZlvMBTrCvsrlwwswCl
|
||||
FPFHFVdJgQHJZnslrgvsTrwMlNgw
|
||||
hQVchcdcZZpZqcDG
|
||||
JbBRgBsRffgPPFQttQvQQMvG
|
||||
dmNZgmZVtGTNtNGC
|
||||
ZqqndLZnccqRbsrgpggsBc
|
||||
DDvMVmTjwFWPBBTzBF
|
||||
cqnggcbNNCqbQQqbZbpfQpqgRWlFhLRBhRzRPLFJhlJBfPLh
|
||||
dpscpcncbbqcpMVSvSrPDMsrjr
|
||||
hGCGZmVRRcMVsGMtmZWssmFLzbFblnnzfmqbfnzNNb
|
||||
wjrSPBJdSjjDrggpSJpdrSnlFNlzLTnqNLqqpbqqfMln
|
||||
dMwPBHPPJHDdvrBBhshWCGcsQRcHRZGV
|
||||
vdHwhqdtLdVnHBZbFBFzbBPS
|
||||
TmNCLNDpWfCNmpCgTWNTDMMZlzSggBMzlZlMBlBbZZ
|
||||
NQfWcscDNQrhqvGLrdhVjh
|
||||
lZLqzzqvgrCRcQcCLD
|
||||
HSVVwNTJzwVNTDQrRrrdrBwdhd
|
||||
TpNTzsfSTVsSpHVppzFpgvvlqZWZPMvMjPPGGsgP
|
||||
BCMLshLdLDDCgwFRwHHqqRqRWd
|
||||
QnSqQlGSfpQzTQJNTPNwNPFRFcccHc
|
||||
mfJJmztnQpGpvnSzGrsqgrhrBBhqjBrthL
|
||||
BSlmzmlvdNnlQlQQJnJHRVFVFVVqMtqRMfSfCw
|
||||
WBPsDPBBjfssFHMRRq
|
||||
DLWpGhbPjbhZrhZDnBQgdNZmQNgmvdzg
|
||||
WWvgBFgHWChBzgBFbjbtPtnPrsHlsRMrwRrMRR
|
||||
SGfNpfdGfVpVSGGppSDdwRwclMlfPMwccsntPqPw
|
||||
TVdpQDSpQZJpVpDQQFBbthvmWzmgvhbjzJ
|
||||
VVCCbzqdbzhFHvbdhZFPmhCPSNRNGSrPJfTNRSGJfGwPST
|
||||
LngtBnlcnDvLcTTRfTTwRtGNTG
|
||||
DpnBjMpLlLDQWDgvpLvbqzmbjzVjVHqbFFqbFq
|
||||
SbzMbNQQSDdmvqqzdSlWFpwZnvpFWWllpFww
|
||||
CjLPTPjjLCPtBCLJjBLPLBTFsFFgfwwpZgplpgFnWWRl
|
||||
nPncrBHGnmrbdmdmNN
|
||||
FnlblGlTTbNVLVtRvQQvgqRQBCvgNr
|
||||
DPMDMpMHmnzjPqDhQWvvQvhghq
|
||||
zMMcddznsjFTldVGlFGT
|
||||
cLSNGLhmRRVmlVCq
|
||||
HvzbQBzBMQMpQDpCSlSVZRSCqV
|
||||
QwWznWnTbQSMMJQHnvwbWjrhNhLFgsGNNrFLNnFNhd
|
||||
dBrWNQWWcTNqqnNN
|
||||
bPlmgRgRghlCVlbhwZccCZjZqvmqvmTTvGqmJTvqnGTGvLLJ
|
||||
DCDZhjllcpDMrSQS
|
||||
ddtNNTFTwRzGRGCwqnBMjlqMHMfqnB
|
||||
hDpPsQLLSprhnHVhqhVfHM
|
||||
QWLWDQZpgpWbQgfspGGRdcGcCcCcztTGZC
|
||||
GGHFdGwFlswcFtnvTfjMjBFfNBjNBZ
|
||||
JWmSJLPSRprWWPWVMMVQpZfBvvfQtj
|
||||
RzPSPDbDDhbhPDLRhCgGHHccsqGCqqtHzG
|
||||
dbSdptWddDMNtdFvttFclqMTZJlJTlMZqJTJTqjC
|
||||
BzfwRzrwPzfzLNGmZZCZBTGBqqlH
|
||||
hVNVQPNQQQVLPwhRrQwgWWvFdDsFWSbdWgdFSFDb
|
||||
hhSnmhtZSFSqZBJSSqqmJJRHPPLgHtPcGGGcWGtvvHwgvG
|
||||
fCMpfTQjTrzrzCQMsQdHGHvPGPwLppPRvWPLLc
|
||||
MdTzCsCMzNzDCTjlmNhRmRnZBllRVh
|
||||
RrFglccgBVVvFNvCvWlgmDbbDfQDtCdjjDbDwmZD
|
||||
STnMqSLHJhHHnqLqtnBndbBdfQQZDtZD
|
||||
GHJPTBsTSsMMSpSBHJFNlWzcvFlzsVzvzgsv
|
||||
lplNdrVrVrWMMVcJfcDDzbqCCpDL
|
||||
SSSgvBRSjggPgzvTTRHTvFnfJLbcLsCDLnCLDCcJBsJq
|
||||
GmHjjRwvHSjHTRjrlZrNMzVMhVrmVW
|
||||
gdtFtgStSbHCbHMPZrFLPLrVlrVZrP
|
||||
hQnjMGfDqTvzvpBjVVjPRLRRjJ
|
||||
QmsQmhvvMtssHtWw
|
||||
RNjTGSCLJCGdRqMRFvMrfzMvzz
|
||||
ZpcWcVDpWBmWQMZZpZDpwBcznrshtntvfvhfFtzmvnzvhf
|
||||
WHHHcVWgQVCbCllbgMLN
|
||||
ZjjdJHSdSzvcZFMhhhDqDHtthw
|
||||
rNTlNqVWTmRPlshsDPDlph
|
||||
WbTNGNmQBRQbRNQgNGmCLdvvjzcCSBqLcLnScL
|
||||
bZwpSpBvSHCBqNzpdFffqQft
|
||||
nWRnGRnVnljmlDnzdPfQfdcQPWWfNq
|
||||
dmRDGMMlDmnVjgMlhBSwCbCgwHbBHhvv
|
||||
NwqLgLBLgnwNNBGpgsQsddhhpQQg
|
||||
JcztcZnzVtZvnVcJMTvTJtWtppsQHGdQhhHHQsPhWdPS
|
||||
fJTJnMmvZvMvRDqFblNBNNjlBf
|
||||
drZVzZzzNWWzwwTWTZrjWcLCqnRqNnLNLqCqnsPPRL
|
||||
JhlBgvHBBLnwMBqDwC
|
||||
GmGFSHmhJSGJwgFJmwJhJhgQVWVdbSWZQzZTrWtZzjzjTz
|
||||
wPGRPpnzgwwGgLddFBFrnrnJdc
|
||||
jCsVclQWmCTrJJddrdFs
|
||||
lWjlCqfmlWccpGPPSgcf
|
||||
hCThCzTdPcPhzqTzMfVfHrhMMmhVHgVM
|
||||
lJSJNqwJsZBSsSBFsMprDmFmFDfDDHgHDf
|
||||
JNGQsSSNGsbZZZSBwZLPtdLjttnqPCbtPbjC
|
||||
vnlWNpbrNrpShhQDLRLB
|
||||
MzCjPgffVTVgCJSRQhBdRdJS
|
||||
VPHcfcBfTzVMTttMzMfgzMfHvrllWvlnvNvlmGwWNwwNmw
|
||||
BwwsqPJqwBssLlFqLRCDzWwzDGRGGWfSRG
|
||||
vTtmmthvpphpnNgNvvpvRrDCddDQrCQCzCDrCfnf
|
||||
pppccNpTVVlqssHHVzBH
|
||||
HWHphZWVWvMZNvpMtfJZgssffsjJgBlslJ
|
||||
RLmrFFnGFrFFrrFCRwCrLNPwqfjSJjqJSJBbsqjbbsblfq
|
||||
LnFLPPGLrGNRQPmndLzPmPmpcDcMHhcMhVHvczcpHHchcV
|
||||
zwqqvNDVggwqVfNQRlszFBsCCJFtFlFPsz
|
||||
MSrrGTZPGSSMSjPbTmtlHBBFrFHFsHlsJsct
|
||||
MnmMPMSZZGSZWmSjnWgfqdgVQDvnqvRDggDV
|
||||
SQCSBShsQnSsSJswsNpVppPPMVpGpnDVgg
|
||||
WWjHvmtWZrwvtzzjTTRPrRRrMVNVVGgVGpGR
|
||||
lTvWjWLfWwbJCQqBSlbB
|
||||
cjPChhswrNVtMZJjVM
|
||||
pfvTFvTzLBFndGTlJmVJZmNlCMGtCJ
|
||||
nfvFTfpbBFdSFpTLswsWDbchwHCWHrbw
|
||||
lNdNPLJJLHHHlpPJcvtVcsBBrrBvBqrVrC
|
||||
wDTbwTQRZTMWsVWtmWhhTr
|
||||
nzRMbSZtMQDnpzzJHLHNflHP
|
||||
HrwwmwcRbmwcbrrTbwwcrTJWLlPshllhLccqLhnnlljhZhjZ
|
||||
GMFMSNSpCBSFSdGpNFpBznLlzzhzshlGhhqPhGGL
|
||||
nFFSCCSSfttBdddDQNDBQpSSrbrmWJwrHfJHWJrbVwWHrgVr
|
||||
SdddNNCmpNNDhMswhsmbhvHM
|
||||
frtzqqqFjgrWfgfqtthsnvRHZRRvFlhnvRZb
|
||||
rtrgqzzrbWtqLGLLtBWzfGcTNCCVGpSNDppTJJVddNpPSG
|
||||
WWJvJvBgpHSHScQRQSVQLzqL
|
||||
ddZTlZGZVfQhZRLLMqsR
|
||||
rPfwrGGrFjjNTGNCCVBggDJHmNDvbmmpmNJJ
|
||||
bbGrJPRVPtfsVfFlMjBV
|
||||
WQzhQQQNZQCWNnQDhzWdNjFZggmlHjjmMmMFjFHpMs
|
||||
CzQCSWDTWhNhzWhTGJwtRRqTblwcclvP
|
||||
HLDvZgZldDTnLLsswMpVLn
|
||||
FNVQzQSPznCMmpBwCF
|
||||
SqfJPfttqffjJPVlhvhZZtvdVDRZ
|
||||
jVsLvHvvdrSjpJFsGzmnmltnml
|
||||
nTNTRCTBTmmmFPMJ
|
||||
CQnCggWQDgBrrSqHjDDfSS
|
||||
ZpNlrZNcmctZbcZlmcmZhhpPvPHvwBMHJPMTMHBTFJvJ
|
||||
zmdCnGzGRnLDjQnzPvMFVHMVMLTVwMJv
|
||||
GGjqssqgzCnCzQsshcffmrbNrrNZtW
|
||||
DNpTwhpLlWMDWNMhbJjGttJFHgDcjtjG
|
||||
wqQrdCdqbFtCtJtJ
|
||||
vffdrwfPrsmqVBBWRVlRRlTSTWSTlR
|
||||
ZqTCTQQTFvsDSsBDvWBd
|
||||
hfBLzRLtHHLDDWRRWWDNbd
|
||||
pHhhnPzLfJcJhzHLzZjcmwCTqTQgwBqqwg
|
||||
WJHgqgFqrVrqgqCHwsJHHVFZzppZFGGfTtpcfbdpzzpd
|
||||
RvNMQlMBhwMdMfcpbM
|
||||
LLRQNBDSSNSwmDDBQRBRBCHsgrgHLVnJVqLsJsnCPJ
|
||||
BFhGsDsDsBtsPGtQDrrMdbdrffrffbJbRt
|
||||
cVVqScVSWWvVWgVZjnrHJgLfdrLrnrLLLQ
|
||||
WmvqNZzzzZSvVzqvcccSzSmqFGCDTGBPQGDhwCDhNDCwPBQp
|
||||
RqTlHHTTrQqHlTqsrVDqHbrZFZwhpBhphZBFhZpDpLLLfB
|
||||
nSzGCGdvzdGNPBQQBfhLZfFwFN
|
||||
WPPPCJMtJSQMJQCCWMJslRrrRgrMRbRqVqqTRR
|
||||
BMtfLsLZfTPmCtGWZrZqJNJqvpZdWr
|
||||
bRwgHhhRhbbSRbjSglcgwHHJWPcJdPrnNWrnqnWVVqpdnq
|
||||
bgjlSgDljHhjgwMPCLPFDMFPGGBC
|
||||
zJWjczcWjSWghZgzgSSSZflTqwlfqTTbnQwhdTnMdl
|
||||
NrGVCmNpHFPsrJFbFQMJbJdQTn
|
||||
JvrtpHHmrCGJCJmNvNpVCsHVgzWgWDDcjjgjDRStWWDLSgzz
|
||||
HzdFsBBVsfnTfsPmPtDcZqtMhDDz
|
||||
wrjjRQLlwwwrJQLQbCrbwlJDSlcSDtPZmPSDclWDtcDqWh
|
||||
RwgprLbNLrLbCCpRCrJLRLFfsGTNNZHBZnnBvvfffnvd
|
||||
MlqqlWZclnPtZtDSSvwQQjgQpNQSRM
|
||||
rLJTsBrsJBhshTNNwSQBWNvNgNSg
|
||||
JbbbChCHsJzHzbWdGHThlFnnPqlPlGPPGncPtFlD
|
||||
WcMVvwNNvjRcwTQwVcpNRcspPCFtbPztbCTFmtPtCJtbCzmz
|
||||
grrgDhrnDLnLrdfdLZlLZhmCqzlCbtJlSSStFmttqsJJ
|
||||
GHHDdgnLDDhrrrgZrZgLNVVVVcRNvcwjWvpWGcRs
|
||||
qhGhPSJtGhGtJtvNjnJjnvmNQQmj
|
||||
sRBFlbZsrdBRRGbVGBDwDMDQwQwMNDjjjVNV
|
||||
CzCflffbBszdBCbdbrtLcfhhgHLGgPccLSPh
|
||||
zShhHFzgJWFVFFHFHhRPNjwqPLPtLbtrbwVjjr
|
||||
ssnvTmvCDfpCZTnsfCqwNLNPwbJqNJPwrjZw
|
||||
vDvpmcnmnBDnsnJTJmQWMHMWzScFggRFRFSW
|
||||
nnVHHPLrnpssLnrpLRnHtHrjJcCdzCjcDzMzdqwRdjdDcJ
|
||||
WWTGQQzSGWlTmBbDJJjwMJjcvvlDjw
|
||||
TGTWBTWmTbgzghZhgzBgpVNrZPPfntfNrVLNNnZP
|
||||
TqhQnqqLnnqddttNqQWdtqQmppSSFFClRmzmFZFLSmSlFF
|
||||
BcHjGclVPPBrVrcjrGGDrMgcmmRJbRCFzpZmSDRpRZJJmRzz
|
||||
ccGjMgvPvsHMgvBHWlhQdqwtllwNdThs
|
||||
WjddwRGgHRRdMbrwHRwWjHDtDZplslnJnZrsDvCprJPJ
|
||||
QSLLFqQBffCFststlFnn
|
||||
CSSmSqzmVVjWMdMjVWgT
|
||||
lTfQRhVpRzjThpRQTTTlvHrvBvHnPMHgHqHJvn
|
||||
cGDctCwCdDCGSFcJsFJsFBvgnMBrHvvrqngHgmgssg
|
||||
SCbSDSFScNpfbRVVJf
|
||||
RrwmdwMVjMjMTghDWNTJDpWfWG
|
||||
SbPvNbvbSsPbSvZsPJtJWhHpGGGgJWgJ
|
||||
lSFvsLNcqzqLrwnFQMnVdmnn
|
||||
FgCJFTWntWTFtPLmJmmQJmCMMpljWZBwlGMljjjlwvwBvZ
|
||||
SDSbVbdScSDzbLZMBrjlZpVrZp
|
||||
ccsSDhSDffzbLNscfcfDcgqhPgTntqmnQmCgtgQCTJ
|
||||
VnCnrHnPPrCwHmVWtqfMQQqzCqffCZ
|
||||
DDbDcJJJbpJDGppFpqGZRWfGfddzMWtfWM
|
||||
tTTglDcgFjwNPHPPwHlH
|
||||
bMGbqqgPqqVVMGnbVqSMmRfPcJmCTPDDLJDTCmDm
|
||||
FFjjZvFRsFCctmtvtJWD
|
||||
wwFhHjQjwQhZrFjQbngglGbRMnSzgbRH
|
||||
GPTTJSgTPrPPmcTPpdJsGGGjqbRvqlztqlRqMzGjRv
|
||||
LwnfWLNwwHHQwHnjbbMMjWttqtMmMj
|
||||
mhwfBDhnQTpJBcBJps
|
||||
HQQHwMfwlltzMlVljQhVjjHPPPFGPFcCGprPTPPfDrDcGf
|
||||
pRLdvRvJgqLRBSJCcvFnCDTPTcTGnT
|
||||
LBLSJbRSLSqbSdBdgJRRqRbwjHHblQttlwtwhzpjMlwhpw
|
||||
NWLNSNSDtgSgghgdcwccmwGntwclnT
|
||||
FRCQzJRsvfVVjvzFJfQnffwCcmdwmHmmHmTwmCmdGBcq
|
||||
sjfJvjfzPRPzvPPVFMssvSLhSSWrMZnSDNrDDhSLZZ
|
||||
FvLpSLtCfPCWhRSZZMZJSW
|
||||
jbbjwbHjQmHjHsQrQFMnwTnJznwRzhJRnNTM
|
||||
gVrjqGqjgrgsFGLDtDBLLfLB
|
||||
cgTvRWWLVScRWflNJJDfVJmVlG
|
||||
nPPnnmqjmZHCHBHFdfwNsDhzzfJznhsfhw
|
||||
bddmQqQjpdFCQWtLQMMSvMMQRS
|
||||
wjnmPwCgjPnRlwnmvmvvPnTwbSSLLvsLDWdbbWzvsLzWbzbz
|
||||
NqrGqFHqJlfhhJGbszdWQzzLNtQDzz
|
||||
FfHFpphrJqJrpGBffcTnBjCnVTMjMRCnVljT
|
||||
SrfSJGJpSgMprMHdhBGhsdsshdGsmm
|
||||
nRTRPvQllQlblwvCjTwLTnvBqdhmHDPVsmDmdqshDVhNsP
|
||||
lbRFHvRwlnlLbnbjLbLjLCzggSpWfMFzSZpzZFJJWpJr
|
||||
vNLlFldlvPtHFPHQRt
|
||||
jcpRsScDgshzjqzfVStntBTPMTnmWttntMpp
|
||||
fSssgVjDsbqSVbCJClLRJLCZRZZb
|
||||
wnHmCJccDDcrNnrNMRDtTzpTlMpTzpBp
|
||||
PjSPPGjWjLzTjjMtzzMj
|
||||
hWvLLFWvHvczVcVn
|
||||
jgtngnnhMthcnLjMgCZvChDsmdNCvNNZDN
|
||||
bWqFPbFbLzRFfZBNDNNPZsNd
|
||||
RbJzGpzVLLLWHHQgTMwcTptQ
|
||||
sJBhsMWQnhhrFBsFhlQQMfrDCDpLlVCddjTdDDpqDLTLdj
|
||||
tZHHSRmNHcgmNzpDPJtttqjLqdpL
|
||||
HbNbZmcHQJbsFWvs
|
||||
VgPNWGbgSjGjfhRRFfzThtmtzF
|
||||
qLCQJBqqcPPmLHhHFz
|
||||
CcJvplQswNgZlNPSbS
|
||||
17
2022/3/part1.ts
Normal file
17
2022/3/part1.ts
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
const input = Deno.readTextFileSync("input");
|
||||
|
||||
const priority = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
|
||||
|
||||
let sum = 0;
|
||||
for(const line of input.split("\n")) {
|
||||
const firstHalf = line.slice(0, line.length / 2);
|
||||
const secondHalf = line.slice(line.length / 2);
|
||||
console.log(firstHalf, secondHalf, firstHalf.length, secondHalf.length);
|
||||
|
||||
const sharedLetter = firstHalf.split("").find((letter) => secondHalf.includes(letter));
|
||||
sum += priority.indexOf(sharedLetter!) + 1;
|
||||
console.log(sharedLetter, priority.indexOf(sharedLetter!) + 1);
|
||||
}
|
||||
|
||||
console.log(sum)
|
||||
17
2022/3/part2.ts
Normal file
17
2022/3/part2.ts
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
const input = Deno.readTextFileSync("input");
|
||||
|
||||
const priority = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
|
||||
|
||||
let sum = 0;
|
||||
const lines = input.split("\n");
|
||||
for(let i = 0; i < lines.length; i += 3) {
|
||||
const first = lines[i];
|
||||
const second = lines[i + 1];
|
||||
const third = lines[i + 2];
|
||||
|
||||
const sharedLetter = first.split("").find((letter) => second.includes(letter) && third.includes(letter));
|
||||
sum += priority.indexOf(sharedLetter!) + 1;
|
||||
}
|
||||
|
||||
console.log(sum)
|
||||
6
2022/3/testinput
Normal file
6
2022/3/testinput
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
||||
1000
2022/4/input
Normal file
1000
2022/4/input
Normal file
File diff suppressed because it is too large
Load diff
18
2022/4/part1.ts
Normal file
18
2022/4/part1.ts
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
const input = Deno.readTextFileSync("input");
|
||||
|
||||
let sum = 0;
|
||||
for(const line of input.split("\n")) {
|
||||
const [first1, first2, second1, second2] = line.split(/[^\d]/).map(t => parseInt(t));
|
||||
console.log(".".repeat(first1) + "X".repeat(first2 - first1 + 1) + ".".repeat(100-first2) + " " + first1 + "-" + first2);
|
||||
console.log(".".repeat(second1) + "X".repeat(second2 - second1 + 1) + ".".repeat(100-second2) + " " + second1 + "-" + second2);
|
||||
if(first1 <= second1 && first2 >= second2 || first1 >= second1 && first2 <= second2) {
|
||||
sum++;
|
||||
console.log(`${first1}-${first2},${second1}-${second2} yes`);
|
||||
} else {
|
||||
console.log(`${first1}-${first2},${second1}-${second2} no`);
|
||||
}
|
||||
console.log();
|
||||
}
|
||||
|
||||
console.log(sum);
|
||||
18
2022/4/part2.ts
Normal file
18
2022/4/part2.ts
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
const input = Deno.readTextFileSync("input");
|
||||
|
||||
let sum = 0;
|
||||
for(const line of input.split("\n")) {
|
||||
const [first1, first2, second1, second2] = line.split(/[^\d]/).map(t => parseInt(t));
|
||||
console.log(".".repeat(first1) + "X".repeat(first2 - first1 + 1) + ".".repeat(100-first2) + " " + first1 + "-" + first2);
|
||||
console.log(".".repeat(second1) + "X".repeat(second2 - second1 + 1) + ".".repeat(100-second2) + " " + second1 + "-" + second2);
|
||||
if(first1 >= second1 && first1 <= second2 || first2 >= second1 && first2 <= second2 || second1 >= first1 && second1 <= first2 || second2 >= first1 && second2 <= first2) {
|
||||
sum++;
|
||||
console.log(`${first1}-${first2},${second1}-${second2} yes`);
|
||||
} else {
|
||||
console.log(`${first1}-${first2},${second1}-${second2} no`);
|
||||
}
|
||||
console.log();
|
||||
}
|
||||
|
||||
console.log(sum);
|
||||
6
2022/4/testinput
Normal file
6
2022/4/testinput
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
2-4,6-8
|
||||
2-3,4-5
|
||||
5-7,7-9
|
||||
2-8,3-7
|
||||
6-6,4-6
|
||||
2-6,4-8
|
||||
512
2022/5/input
Normal file
512
2022/5/input
Normal file
|
|
@ -0,0 +1,512 @@
|
|||
[F] [Q] [Q]
|
||||
[B] [Q] [V] [D] [S]
|
||||
[S] [P] [T] [R] [M] [D]
|
||||
[J] [V] [W] [M] [F] [J] [J]
|
||||
[Z] [G] [S] [W] [N] [D] [R] [T]
|
||||
[V] [M] [B] [G] [S] [C] [T] [V] [S]
|
||||
[D] [S] [L] [J] [L] [G] [G] [F] [R]
|
||||
[G] [Z] [C] [H] [C] [R] [H] [P] [D]
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
move 3 from 5 to 2
|
||||
move 3 from 8 to 4
|
||||
move 7 from 7 to 3
|
||||
move 14 from 3 to 9
|
||||
move 8 from 4 to 1
|
||||
move 1 from 7 to 5
|
||||
move 2 from 6 to 4
|
||||
move 4 from 5 to 7
|
||||
move 1 from 3 to 6
|
||||
move 3 from 4 to 3
|
||||
move 1 from 4 to 1
|
||||
move 5 from 1 to 9
|
||||
move 1 from 4 to 6
|
||||
move 4 from 7 to 4
|
||||
move 15 from 9 to 2
|
||||
move 7 from 1 to 6
|
||||
move 3 from 3 to 5
|
||||
move 1 from 4 to 9
|
||||
move 2 from 5 to 3
|
||||
move 2 from 4 to 9
|
||||
move 4 from 1 to 6
|
||||
move 1 from 3 to 1
|
||||
move 1 from 3 to 2
|
||||
move 4 from 6 to 3
|
||||
move 24 from 2 to 8
|
||||
move 4 from 9 to 8
|
||||
move 1 from 1 to 3
|
||||
move 2 from 5 to 4
|
||||
move 1 from 2 to 4
|
||||
move 19 from 8 to 1
|
||||
move 5 from 3 to 9
|
||||
move 8 from 1 to 3
|
||||
move 3 from 4 to 1
|
||||
move 6 from 9 to 5
|
||||
move 2 from 3 to 4
|
||||
move 1 from 8 to 5
|
||||
move 2 from 4 to 6
|
||||
move 11 from 6 to 1
|
||||
move 8 from 8 to 7
|
||||
move 1 from 6 to 5
|
||||
move 13 from 1 to 3
|
||||
move 1 from 1 to 7
|
||||
move 2 from 7 to 8
|
||||
move 5 from 7 to 1
|
||||
move 2 from 8 to 4
|
||||
move 3 from 5 to 3
|
||||
move 11 from 3 to 1
|
||||
move 2 from 5 to 3
|
||||
move 2 from 5 to 3
|
||||
move 2 from 7 to 1
|
||||
move 7 from 3 to 1
|
||||
move 1 from 4 to 5
|
||||
move 1 from 6 to 4
|
||||
move 3 from 4 to 7
|
||||
move 3 from 7 to 1
|
||||
move 6 from 3 to 5
|
||||
move 1 from 5 to 9
|
||||
move 4 from 5 to 4
|
||||
move 2 from 3 to 4
|
||||
move 8 from 9 to 2
|
||||
move 5 from 4 to 6
|
||||
move 1 from 6 to 5
|
||||
move 1 from 4 to 9
|
||||
move 39 from 1 to 7
|
||||
move 7 from 2 to 6
|
||||
move 1 from 9 to 3
|
||||
move 1 from 2 to 7
|
||||
move 1 from 3 to 1
|
||||
move 5 from 7 to 3
|
||||
move 4 from 5 to 1
|
||||
move 19 from 7 to 9
|
||||
move 1 from 9 to 8
|
||||
move 1 from 9 to 7
|
||||
move 5 from 9 to 3
|
||||
move 6 from 6 to 7
|
||||
move 1 from 8 to 3
|
||||
move 4 from 1 to 4
|
||||
move 23 from 7 to 6
|
||||
move 1 from 1 to 6
|
||||
move 21 from 6 to 2
|
||||
move 3 from 4 to 8
|
||||
move 7 from 6 to 1
|
||||
move 1 from 4 to 9
|
||||
move 1 from 6 to 7
|
||||
move 6 from 1 to 2
|
||||
move 1 from 7 to 4
|
||||
move 15 from 2 to 8
|
||||
move 5 from 3 to 8
|
||||
move 22 from 8 to 7
|
||||
move 1 from 8 to 1
|
||||
move 5 from 3 to 4
|
||||
move 1 from 3 to 2
|
||||
move 1 from 1 to 2
|
||||
move 3 from 4 to 8
|
||||
move 3 from 8 to 9
|
||||
move 11 from 2 to 1
|
||||
move 2 from 1 to 4
|
||||
move 15 from 9 to 5
|
||||
move 22 from 7 to 3
|
||||
move 2 from 4 to 9
|
||||
move 3 from 4 to 2
|
||||
move 8 from 1 to 8
|
||||
move 6 from 8 to 6
|
||||
move 1 from 6 to 2
|
||||
move 3 from 6 to 9
|
||||
move 3 from 2 to 7
|
||||
move 4 from 2 to 9
|
||||
move 2 from 7 to 5
|
||||
move 1 from 1 to 7
|
||||
move 2 from 8 to 2
|
||||
move 2 from 7 to 5
|
||||
move 9 from 5 to 3
|
||||
move 8 from 5 to 2
|
||||
move 1 from 6 to 4
|
||||
move 1 from 6 to 9
|
||||
move 1 from 2 to 9
|
||||
move 2 from 5 to 1
|
||||
move 7 from 2 to 3
|
||||
move 1 from 4 to 3
|
||||
move 1 from 2 to 4
|
||||
move 5 from 3 to 4
|
||||
move 6 from 9 to 3
|
||||
move 1 from 2 to 6
|
||||
move 6 from 9 to 6
|
||||
move 2 from 1 to 8
|
||||
move 3 from 6 to 3
|
||||
move 2 from 8 to 6
|
||||
move 6 from 4 to 1
|
||||
move 14 from 3 to 9
|
||||
move 1 from 6 to 4
|
||||
move 3 from 3 to 9
|
||||
move 1 from 4 to 5
|
||||
move 10 from 9 to 6
|
||||
move 6 from 6 to 7
|
||||
move 2 from 1 to 8
|
||||
move 1 from 8 to 6
|
||||
move 16 from 3 to 2
|
||||
move 1 from 8 to 1
|
||||
move 1 from 7 to 1
|
||||
move 7 from 3 to 4
|
||||
move 1 from 6 to 5
|
||||
move 4 from 2 to 3
|
||||
move 5 from 4 to 9
|
||||
move 2 from 4 to 5
|
||||
move 4 from 7 to 4
|
||||
move 5 from 9 to 6
|
||||
move 2 from 5 to 4
|
||||
move 11 from 6 to 7
|
||||
move 1 from 6 to 8
|
||||
move 5 from 1 to 5
|
||||
move 2 from 6 to 4
|
||||
move 7 from 7 to 3
|
||||
move 1 from 8 to 6
|
||||
move 2 from 7 to 3
|
||||
move 1 from 1 to 3
|
||||
move 3 from 2 to 8
|
||||
move 9 from 2 to 5
|
||||
move 1 from 6 to 1
|
||||
move 1 from 4 to 8
|
||||
move 7 from 4 to 7
|
||||
move 8 from 5 to 6
|
||||
move 1 from 7 to 2
|
||||
move 1 from 7 to 4
|
||||
move 3 from 7 to 8
|
||||
move 1 from 2 to 3
|
||||
move 1 from 1 to 2
|
||||
move 1 from 1 to 7
|
||||
move 3 from 7 to 6
|
||||
move 11 from 6 to 2
|
||||
move 4 from 8 to 7
|
||||
move 2 from 8 to 7
|
||||
move 15 from 3 to 2
|
||||
move 7 from 9 to 4
|
||||
move 3 from 3 to 2
|
||||
move 4 from 4 to 7
|
||||
move 5 from 7 to 3
|
||||
move 3 from 4 to 6
|
||||
move 3 from 6 to 9
|
||||
move 1 from 4 to 2
|
||||
move 1 from 8 to 1
|
||||
move 2 from 3 to 7
|
||||
move 2 from 3 to 7
|
||||
move 23 from 2 to 5
|
||||
move 1 from 9 to 1
|
||||
move 1 from 7 to 9
|
||||
move 1 from 1 to 8
|
||||
move 8 from 7 to 1
|
||||
move 1 from 8 to 4
|
||||
move 1 from 4 to 2
|
||||
move 3 from 9 to 8
|
||||
move 1 from 7 to 9
|
||||
move 22 from 5 to 9
|
||||
move 1 from 8 to 5
|
||||
move 1 from 7 to 4
|
||||
move 1 from 4 to 5
|
||||
move 1 from 8 to 3
|
||||
move 2 from 9 to 3
|
||||
move 5 from 5 to 2
|
||||
move 5 from 5 to 4
|
||||
move 3 from 2 to 7
|
||||
move 1 from 7 to 3
|
||||
move 6 from 1 to 7
|
||||
move 4 from 3 to 1
|
||||
move 6 from 2 to 8
|
||||
move 1 from 5 to 6
|
||||
move 2 from 8 to 1
|
||||
move 12 from 9 to 4
|
||||
move 8 from 9 to 4
|
||||
move 1 from 2 to 9
|
||||
move 2 from 9 to 8
|
||||
move 3 from 2 to 8
|
||||
move 5 from 8 to 6
|
||||
move 7 from 7 to 1
|
||||
move 4 from 8 to 9
|
||||
move 1 from 6 to 1
|
||||
move 17 from 4 to 7
|
||||
move 1 from 2 to 4
|
||||
move 2 from 4 to 1
|
||||
move 6 from 4 to 6
|
||||
move 1 from 1 to 4
|
||||
move 7 from 1 to 5
|
||||
move 9 from 7 to 9
|
||||
move 8 from 9 to 8
|
||||
move 5 from 8 to 3
|
||||
move 1 from 5 to 6
|
||||
move 2 from 3 to 6
|
||||
move 1 from 9 to 1
|
||||
move 1 from 6 to 1
|
||||
move 10 from 6 to 1
|
||||
move 1 from 5 to 1
|
||||
move 2 from 9 to 1
|
||||
move 1 from 9 to 7
|
||||
move 2 from 6 to 8
|
||||
move 2 from 8 to 2
|
||||
move 1 from 6 to 8
|
||||
move 22 from 1 to 9
|
||||
move 9 from 7 to 5
|
||||
move 1 from 8 to 1
|
||||
move 2 from 8 to 3
|
||||
move 4 from 5 to 9
|
||||
move 1 from 8 to 3
|
||||
move 5 from 1 to 9
|
||||
move 2 from 7 to 3
|
||||
move 2 from 4 to 7
|
||||
move 1 from 8 to 5
|
||||
move 2 from 2 to 4
|
||||
move 1 from 5 to 8
|
||||
move 9 from 5 to 8
|
||||
move 2 from 7 to 5
|
||||
move 2 from 4 to 5
|
||||
move 3 from 8 to 4
|
||||
move 3 from 4 to 3
|
||||
move 2 from 8 to 6
|
||||
move 1 from 6 to 4
|
||||
move 3 from 5 to 9
|
||||
move 1 from 6 to 3
|
||||
move 12 from 3 to 5
|
||||
move 1 from 3 to 1
|
||||
move 7 from 5 to 4
|
||||
move 1 from 1 to 3
|
||||
move 1 from 8 to 1
|
||||
move 7 from 5 to 1
|
||||
move 6 from 9 to 6
|
||||
move 29 from 9 to 5
|
||||
move 2 from 4 to 6
|
||||
move 26 from 5 to 2
|
||||
move 24 from 2 to 7
|
||||
move 1 from 3 to 2
|
||||
move 8 from 1 to 7
|
||||
move 7 from 6 to 9
|
||||
move 2 from 5 to 3
|
||||
move 1 from 6 to 4
|
||||
move 3 from 8 to 5
|
||||
move 2 from 3 to 8
|
||||
move 2 from 2 to 8
|
||||
move 5 from 9 to 2
|
||||
move 27 from 7 to 2
|
||||
move 2 from 8 to 3
|
||||
move 2 from 9 to 5
|
||||
move 3 from 8 to 5
|
||||
move 2 from 7 to 4
|
||||
move 3 from 4 to 7
|
||||
move 2 from 3 to 2
|
||||
move 4 from 5 to 1
|
||||
move 5 from 7 to 2
|
||||
move 29 from 2 to 8
|
||||
move 9 from 8 to 3
|
||||
move 2 from 4 to 8
|
||||
move 7 from 3 to 2
|
||||
move 3 from 5 to 4
|
||||
move 1 from 7 to 5
|
||||
move 3 from 5 to 6
|
||||
move 2 from 1 to 8
|
||||
move 2 from 6 to 8
|
||||
move 3 from 4 to 2
|
||||
move 4 from 4 to 2
|
||||
move 1 from 6 to 8
|
||||
move 8 from 2 to 4
|
||||
move 2 from 3 to 5
|
||||
move 1 from 4 to 1
|
||||
move 3 from 1 to 2
|
||||
move 4 from 8 to 2
|
||||
move 3 from 4 to 9
|
||||
move 3 from 4 to 1
|
||||
move 2 from 9 to 5
|
||||
move 1 from 4 to 6
|
||||
move 4 from 5 to 1
|
||||
move 1 from 6 to 8
|
||||
move 1 from 9 to 3
|
||||
move 4 from 2 to 3
|
||||
move 15 from 8 to 2
|
||||
move 9 from 8 to 1
|
||||
move 1 from 3 to 9
|
||||
move 5 from 1 to 9
|
||||
move 3 from 9 to 7
|
||||
move 2 from 7 to 6
|
||||
move 3 from 3 to 2
|
||||
move 1 from 7 to 8
|
||||
move 1 from 9 to 6
|
||||
move 1 from 9 to 8
|
||||
move 2 from 8 to 2
|
||||
move 1 from 1 to 2
|
||||
move 1 from 3 to 7
|
||||
move 4 from 1 to 7
|
||||
move 19 from 2 to 5
|
||||
move 1 from 1 to 4
|
||||
move 1 from 7 to 4
|
||||
move 1 from 1 to 5
|
||||
move 3 from 1 to 4
|
||||
move 1 from 1 to 8
|
||||
move 6 from 2 to 4
|
||||
move 7 from 2 to 1
|
||||
move 2 from 7 to 9
|
||||
move 8 from 2 to 8
|
||||
move 2 from 7 to 3
|
||||
move 1 from 6 to 4
|
||||
move 10 from 4 to 6
|
||||
move 5 from 6 to 7
|
||||
move 2 from 9 to 8
|
||||
move 6 from 8 to 9
|
||||
move 1 from 2 to 3
|
||||
move 2 from 8 to 3
|
||||
move 5 from 1 to 8
|
||||
move 8 from 5 to 2
|
||||
move 8 from 8 to 7
|
||||
move 7 from 2 to 8
|
||||
move 1 from 1 to 2
|
||||
move 1 from 9 to 7
|
||||
move 1 from 4 to 2
|
||||
move 2 from 2 to 6
|
||||
move 5 from 9 to 3
|
||||
move 2 from 8 to 6
|
||||
move 2 from 3 to 9
|
||||
move 4 from 8 to 6
|
||||
move 7 from 6 to 1
|
||||
move 8 from 1 to 5
|
||||
move 1 from 8 to 7
|
||||
move 1 from 9 to 6
|
||||
move 12 from 5 to 3
|
||||
move 1 from 4 to 8
|
||||
move 2 from 9 to 5
|
||||
move 1 from 2 to 3
|
||||
move 3 from 5 to 1
|
||||
move 1 from 1 to 5
|
||||
move 21 from 3 to 8
|
||||
move 2 from 1 to 5
|
||||
move 6 from 5 to 7
|
||||
move 2 from 5 to 6
|
||||
move 10 from 6 to 9
|
||||
move 1 from 6 to 8
|
||||
move 13 from 8 to 2
|
||||
move 2 from 5 to 4
|
||||
move 2 from 4 to 3
|
||||
move 4 from 9 to 1
|
||||
move 5 from 7 to 8
|
||||
move 12 from 8 to 1
|
||||
move 5 from 9 to 6
|
||||
move 1 from 3 to 7
|
||||
move 2 from 6 to 5
|
||||
move 11 from 2 to 1
|
||||
move 1 from 8 to 4
|
||||
move 16 from 1 to 9
|
||||
move 1 from 2 to 6
|
||||
move 1 from 8 to 5
|
||||
move 12 from 9 to 3
|
||||
move 14 from 7 to 2
|
||||
move 1 from 7 to 9
|
||||
move 1 from 4 to 2
|
||||
move 1 from 7 to 5
|
||||
move 3 from 9 to 5
|
||||
move 4 from 6 to 9
|
||||
move 3 from 9 to 4
|
||||
move 1 from 8 to 4
|
||||
move 2 from 4 to 5
|
||||
move 1 from 7 to 1
|
||||
move 5 from 3 to 5
|
||||
move 2 from 4 to 2
|
||||
move 8 from 2 to 7
|
||||
move 7 from 2 to 4
|
||||
move 1 from 3 to 7
|
||||
move 3 from 9 to 7
|
||||
move 2 from 2 to 9
|
||||
move 3 from 4 to 5
|
||||
move 6 from 1 to 8
|
||||
move 6 from 1 to 5
|
||||
move 3 from 9 to 2
|
||||
move 22 from 5 to 9
|
||||
move 1 from 5 to 6
|
||||
move 2 from 2 to 3
|
||||
move 5 from 7 to 6
|
||||
move 5 from 8 to 9
|
||||
move 2 from 7 to 2
|
||||
move 20 from 9 to 4
|
||||
move 1 from 8 to 3
|
||||
move 2 from 2 to 5
|
||||
move 1 from 2 to 5
|
||||
move 15 from 4 to 8
|
||||
move 1 from 5 to 7
|
||||
move 6 from 9 to 1
|
||||
move 5 from 4 to 8
|
||||
move 2 from 4 to 8
|
||||
move 1 from 2 to 1
|
||||
move 5 from 6 to 5
|
||||
move 5 from 5 to 7
|
||||
move 1 from 9 to 8
|
||||
move 5 from 7 to 2
|
||||
move 2 from 5 to 1
|
||||
move 4 from 7 to 5
|
||||
move 1 from 5 to 9
|
||||
move 1 from 6 to 8
|
||||
move 1 from 7 to 2
|
||||
move 6 from 3 to 4
|
||||
move 3 from 5 to 7
|
||||
move 1 from 9 to 2
|
||||
move 6 from 2 to 3
|
||||
move 1 from 3 to 4
|
||||
move 13 from 8 to 9
|
||||
move 7 from 1 to 5
|
||||
move 6 from 9 to 2
|
||||
move 1 from 1 to 4
|
||||
move 6 from 2 to 3
|
||||
move 1 from 1 to 4
|
||||
move 5 from 9 to 7
|
||||
move 11 from 8 to 4
|
||||
move 7 from 7 to 3
|
||||
move 2 from 7 to 8
|
||||
move 1 from 8 to 2
|
||||
move 8 from 4 to 1
|
||||
move 2 from 1 to 6
|
||||
move 2 from 5 to 8
|
||||
move 3 from 1 to 9
|
||||
move 1 from 8 to 2
|
||||
move 11 from 3 to 2
|
||||
move 2 from 8 to 9
|
||||
move 9 from 4 to 7
|
||||
move 11 from 3 to 8
|
||||
move 7 from 9 to 6
|
||||
move 5 from 4 to 6
|
||||
move 3 from 7 to 3
|
||||
move 1 from 7 to 1
|
||||
move 5 from 7 to 6
|
||||
move 2 from 3 to 5
|
||||
move 1 from 3 to 4
|
||||
move 5 from 2 to 5
|
||||
move 1 from 1 to 7
|
||||
move 1 from 4 to 8
|
||||
move 1 from 7 to 6
|
||||
move 7 from 5 to 7
|
||||
move 2 from 5 to 7
|
||||
move 3 from 1 to 7
|
||||
move 1 from 2 to 3
|
||||
move 1 from 6 to 4
|
||||
move 1 from 3 to 4
|
||||
move 1 from 5 to 3
|
||||
move 18 from 6 to 4
|
||||
move 9 from 7 to 1
|
||||
move 14 from 4 to 6
|
||||
move 3 from 6 to 4
|
||||
move 12 from 6 to 7
|
||||
move 2 from 5 to 3
|
||||
move 3 from 7 to 4
|
||||
move 6 from 4 to 7
|
||||
move 5 from 1 to 7
|
||||
move 5 from 4 to 5
|
||||
move 5 from 2 to 1
|
||||
move 9 from 8 to 4
|
||||
move 9 from 1 to 3
|
||||
move 2 from 8 to 2
|
||||
move 4 from 2 to 4
|
||||
move 1 from 7 to 6
|
||||
move 1 from 2 to 3
|
||||
move 1 from 8 to 9
|
||||
move 1 from 6 to 9
|
||||
move 2 from 9 to 3
|
||||
move 3 from 4 to 1
|
||||
move 13 from 3 to 5
|
||||
move 12 from 5 to 1
|
||||
move 7 from 1 to 8
|
||||
move 1 from 3 to 6
|
||||
move 4 from 5 to 4
|
||||
move 1 from 5 to 2
|
||||
move 8 from 4 to 9
|
||||
39
2022/5/part1.ts
Normal file
39
2022/5/part1.ts
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
const file = Deno.readTextFileSync("./input");
|
||||
|
||||
const [arrangement, moves] = file.split("\n\n");
|
||||
|
||||
const list: string[][] = [];
|
||||
function visualize() {
|
||||
console.log(
|
||||
list.map((t,i) => (i+1) + " " + t.slice().reverse().join(" ")).join("\n")
|
||||
)
|
||||
}
|
||||
|
||||
for(const line of arrangement.split("\n")) {
|
||||
if(line[1] == "1") break;
|
||||
for(let i = 0; i < line.length; i+=4) {
|
||||
const letter = line[i + 1];
|
||||
if(letter == " ") continue;
|
||||
const num = i/4;
|
||||
if(!list[num]) list[num] = [];
|
||||
list[num].push(letter);
|
||||
}
|
||||
}
|
||||
|
||||
visualize();
|
||||
|
||||
for(const move of moves.split("\n")) {
|
||||
if(!move.startsWith("move")) break;
|
||||
const [, num, , src, , dest ] = move.split(" ").map(t => parseInt(t));
|
||||
|
||||
console.log();
|
||||
console.log(`Move ${num} from ${src} to ${dest}`);
|
||||
let moved = list[src - 1].splice(0, num).reverse();
|
||||
list[dest - 1].unshift(...moved);
|
||||
console.log(moved);
|
||||
visualize();
|
||||
}
|
||||
|
||||
console.log(list)
|
||||
visualize();
|
||||
39
2022/5/part2.ts
Normal file
39
2022/5/part2.ts
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
const file = Deno.readTextFileSync("./input");
|
||||
|
||||
const [arrangement, moves] = file.split("\n\n");
|
||||
|
||||
const list: string[][] = [];
|
||||
function visualize() {
|
||||
console.log(
|
||||
list.map((t,i) => (i+1) + " " + t.slice().reverse().join(" ")).join("\n")
|
||||
)
|
||||
}
|
||||
|
||||
for(const line of arrangement.split("\n")) {
|
||||
if(line[1] == "1") break;
|
||||
for(let i = 0; i < line.length; i+=4) {
|
||||
const letter = line[i + 1];
|
||||
if(letter == " ") continue;
|
||||
const num = i/4;
|
||||
if(!list[num]) list[num] = [];
|
||||
list[num].push(letter);
|
||||
}
|
||||
}
|
||||
|
||||
visualize();
|
||||
|
||||
for(const move of moves.split("\n")) {
|
||||
if(!move.startsWith("move")) break;
|
||||
const [, num, , src, , dest ] = move.split(" ").map(t => parseInt(t));
|
||||
|
||||
console.log();
|
||||
console.log(`Move ${num} from ${src} to ${dest}`);
|
||||
let moved = list[src - 1].splice(0, num);
|
||||
list[dest - 1].unshift(...moved);
|
||||
console.log(moved);
|
||||
visualize();
|
||||
}
|
||||
|
||||
console.log(list)
|
||||
visualize();
|
||||
9
2022/5/testinput
Normal file
9
2022/5/testinput
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[D]
|
||||
[N] [C]
|
||||
[Z] [M] [P]
|
||||
1 2 3
|
||||
|
||||
move 1 from 2 to 1
|
||||
move 3 from 1 to 3
|
||||
move 2 from 2 to 1
|
||||
move 1 from 1 to 2
|
||||
1
2022/6/input
Normal file
1
2022/6/input
Normal file
|
|
@ -0,0 +1 @@
|
|||
vftfrfcrfrpptffhnnnsznzgngqgsssczcjcdcssmgmtmnmqnmmfttbdttqtggmgpmmqrqzrzttptpdtpddqfdffgjgzjzczjcjjvttvmmrwmrwwjtwjttnccgbcbjbgjjcvvsqshszhzvhvsstjjljcczmzjmzzdtzzhfhvvvflljtllfqqdmmmhmfhffzhhtgtssqppgcppfjjrnngwwrvrvqvpppcspsrrsqqqlmmpcmcjmmjhmhzzpnnggmjjrprptpccdggcrrwfwggsfggbbqlqflqqcsqqccqzqbbnbmmlzllnhnwwsjsgstgttfdtffzfvzvbzzrlzlppcsctcncrncnjnfnqnvngnzzscslsppdqdbbthhqvqfvqqvccvdcddsllnwnqwwsccjmcjmmfmppnzpzffslffjrfjftftrffwcwppfsftssdwdzzffnwndnvnggbbfbgfbbfmbbjzzdqdtqtfqqpzzqpzpllvrrbqqbcqqzvznzmmwcwtwftwfwtftvtddhldldblbzlbzlllcjjwllvcllqplqplpzlzqzsqzsznnqwnqqrcqqnrrhmmqbqqlbqqrhrrdgrrsqssnwsnswsgsfsbbdhbdbqqtsqsbsmmbtmmghhcththrrnvvnlvvdvwwjwmwbmmvtvztzmtmrmprpvvmbmrbrsbbpsbbtccwgccbctbccjrjcjtccrrdnnwwqrwwjpjtptcpcfpfvfjjtqtnqqvzqqfhfrftrrgqgbqqtwwthwhqwqjqmmlglnlrnlrnnshsmspmmfnnqwqgwqqprpbbjbhjbbfqftfwwjhhcpcgcpcvppgfgcfgffbzbfzbzqzccmppndppspbssnbbpdpjpgpngpnggtztjzjdjhjmmwrmmqhhcvvvltvllvmvpvlplwplpmllgpllczlzpzczwzswwqgqbqppcjjhjddgccfmmctcjcscczzzjzwzjjsccdmdppdrdccmttjpttqvqdqtdqtqhqchhhtbbddmhhwdhdwdjdccnhcnndpdldvldlvddbjdbjbppjbpbssqnqnmmmclcggrmmdnnwmwddvjvdvrvzzglzlnnllhqqrbbcvvdtttdvvnfnqqstszsjsrscspszppfjjfttgqttdpdbbbvnndbdcdqdrdhhdhhdjjjzzhqqrcrvccrvrtvtnvnpppccpdpccjgjmjzzbsbgsbstsbbtdttrqtrrsrdrdcdjcddbcbjcbjbwbbslbbbbnmmtsmmrwrnwwqtqzqpprhrzhrhhldddrpdrpdpwdpwdpwwlmmzssbwswppldlmddphhnfhhczhhqrrdgdjjdttztftzffdvddqnqvvlbbncnffssbnbfnnzbnznhzhdzzrqzzptzppsnsnzntzzfwfzzvrzrbzrbzrbzrrqqltqlqppbwppmvpmvpmmbnnbhbmbdmbbhmmngmgmhgmghhvttzzfvfggrrchrrbffzjzlzsllbqqhqrrmqrrlzzsqzqqmhhmnmtntstnsnhsnnwwpdphhgjhjccbcqcjcbjbttmssqffjzjmzmqqrbbfnffcbfcfzfrzztftntbntttlddvwdvdcdhcdhdbbjfjzjwpbcvlqvcwjrcjssdfmgwrhrjvhpgqsbtzqqdwjrqsjplqjdzdcrtvqlcrfpcgwpjnbpcmbwnwbzhcvjvzzpvqnzdqdgpfrvdpfdmpprmzmghdfjjzfqjqcbplwntzmsrpqclgrqzhlsgwffqqntswnjsmrcpjlsvdrmcwdgqzsbsbvhbszqgwqffcgbqmjrfjdvbpwbrzwbjgvvjchwfscrhrtzbghjlcnsqqhdgqtdcqrrpsbzqvjwptblszrtffhwcvbngnsdjgpscfzwrncwlpfqgwdzffsqmjcbrlffftpvhjchmgmgqvjnpfsjnfzddqjsfqcpjgfrfgrtlmtfqphjfmdcvmghrdqvbbbhlstgpcgmqnwpdjwbrdbntbpncnztmnmzmsjzrwjmccqslngrvbjcjjgcvnvhsslfhwpwtjjcwgzqpdvqrlbttnnwdphztmwcdlvlqggrdprmzdfpbfhmsgqznzjhdqpmhfphqcvbfqmhnfpcvstrhdbtmljnnhqtfnpdwnszfrflsbbqjsvbvggzfhlcljwlrlfnlwlzzllzbqftlwzqsvwlldslnfnnbhlwmhqhrjlqzpdsjlhjncpwtnpnqvjtzzjnmdntmbjbcwphplbcwdfcqbhhnjnjsfplgwbrqpqmghnzvdprtlmgvwhdgpdwfvdtqtnqdvbntmsrhftwvrgwcbvhnwmhfggdzfgbdfqsbngmvjgssclqlhqggwndzzhcrzrmnzggnvbbbpzfdjtnlvlnprjtlljhtdqjlddmjdswjrwhwdbbbrmpwsgpfgnplbtzfzlvgnfrvvnbjtsglbzmtmcjbbjclmjgtdrrbpbbqzqnvrgqssfrwhrtpsbgsvnnfbmqgbvhshmpqtqljlpwptqzprdbgnzmlgtrvgnmmfhtccsvbmsfnlnzwhrmcnwmmhgwclghgmspwjvbgqrbbhhrglstdntwnvcgdcmwgbwrwhsqzsdnqsvmcbzrvtztspshrfmqbtrdtnsqdllqzdcbmvbdswzrrzchqgpgmhvjgwgnpqfwcmchsnqssnnslzwtwvbqjfbhlbdjzjrqjvsshcvcbwhsvvwtmjwjfgszmvfzclbqjhnczqcznprwzjnlgmdgbfjnrqfgvstcldnttbjmhsqgqlmzqtsqngvmdvrwcjtfljzdmnndnrbqnlqtmsqngflwsghzzsfcdnttpblqqhmtgnqmcdfmclsvgnsfpnnfssqzjtdsjbjnnmqhfctlddtwrqlpczlzvhddrtjfwgqhfcvchzqgfhdbfpbvtqcjvchqmwhvwjrbtcjgbfqjdsbfpgjrzvlgqwphshnqrvqsppgsnfswvrzpwmdfmmwntnsddzppffjvbnshhqgwclvtpjzvlbdzblhhmhrmjrpmltglsdffnstsdqwjhnjccqhbdrgnwmpwczflfvsbznpphgpbfzffbcdnbrqbwddlhvgqsdmdhmlzbdztrrswsbvdgptvhhcdtwzqqhzqpswwvftppwvwhrspfqwppjbdlhcchlftjhrpwhtvqhmwwtcbfhgbqzvzdlwlzwcsqgvmmsnhrfmwwpcrjlsgzmgdqstlwbzrzbqfnpqffmjqbqqzcnsqrfstnwjflwlpfgcjwjdvtjslrcpgwsvrbvjtzqvnjlqrvvwjhzbzqqjhcrbdtwqjbtmwfrmcgnbdcrhrvlcgrgtglpfmvpgwbzccddlrbsjzwbgwthhdmjjtpchtsbnnpgqfcpmsrgvqwhcdqzmtzlzbfdgmvtqzzdcrnhtlcwnmhdjtwdsrfnlmwpnfwdrptclvwrnwrnntwwqvfmjgswbtqcvmbfbgstvsntndzhjjnjfblqdqrgchchtgdwtvlqzrlpsqgbltjzjngdscdczwzhnlszpdnvnbrmfmjpdzvjfgvtwtpwdjjfgspbvtdjrwzncdpbsthgcwvvdbbvpvqdqpzjmlzhtjmjwmzsmrcstrsvbccqhppwrtmslggqbgglgrgffrbwzmbghfqclwwgssgghqjgfjgvwjhhwnntnrnhmfslqpmwzlggsbmrjjgfzfpjlvmshfsdjtshdlfzvjtlqwjbbgmnjhrhtpbgvcsjvwzlqvfchhpfwsbhcztmdgfzgsmszwfbvvgmgpqsrbzvtpmpqdvhgrjmmspnswjrjnjqfgjwsfbzhwhtlfwjfdhgsvcwqlbznqlnhsmzwltfwclcwgjdbhqvjbbchmcpptmpdqzwpfwrbmchpbqndtmdrwtcvlmrrnvhnpzwqcwwgmcblzvnzbzsspwchtqvjmphqtzgwdzqlbvgdjbssdjwljhlsjwzrdvqtrzcdwszqgfdwgnqdrmssqqhtblqzdhtqtqmlbbfhzvlbrphcjhzpvvshjffnsjcbgvngnsjmfdbgfzphjc
|
||||
9
2022/6/part1.ts
Normal file
9
2022/6/part1.ts
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
const input: string = Deno.readTextFileSync("input");
|
||||
|
||||
for(let i = 4; i < input.length; i++) {
|
||||
let last = input.slice(i - 4, i);
|
||||
if(last.split("").find((c, i, a) => a.indexOf(c) !== i)) continue;
|
||||
console.log(last, i);
|
||||
break;
|
||||
}
|
||||
9
2022/6/part2.ts
Normal file
9
2022/6/part2.ts
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
const input: string = Deno.readTextFileSync("input");
|
||||
|
||||
for(let i = 14; i < input.length; i++) {
|
||||
let last = input.slice(i - 14, i);
|
||||
if(last.split("").find((c, i, a) => a.indexOf(c) !== i)) continue;
|
||||
console.log(last, i);
|
||||
break;
|
||||
}
|
||||
1
2022/6/testinput
Normal file
1
2022/6/testinput
Normal file
|
|
@ -0,0 +1 @@
|
|||
bvwbjplbgvbhsrlpgdmjqwftvncz
|
||||
1045
2022/7/input
Normal file
1045
2022/7/input
Normal file
File diff suppressed because it is too large
Load diff
69
2022/7/part1.ts
Normal file
69
2022/7/part1.ts
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
|
||||
const input = Deno.readTextFileSync("./input");
|
||||
|
||||
class File {
|
||||
constructor(public name: string, public size: number) {}
|
||||
}
|
||||
|
||||
class Directory {
|
||||
constructor(public name: string, public parent: Directory | null, public files: File[], public folders: Directory[]) {}
|
||||
|
||||
getSize(): number {
|
||||
return this.files.reduce((acc, file) => acc + file.size, 0) + this.folders.reduce((acc, folder) => acc + folder.getSize(), 0);
|
||||
}
|
||||
|
||||
print(level = 0) {
|
||||
console.log(" ".repeat(level * 2) + this.name + " (" + this.getSize() + ")");
|
||||
for(const file of this.files) {
|
||||
console.log(" ".repeat((level + 1) * 2) + file.name + " (" + file.size + ")");
|
||||
}
|
||||
for(const folder of this.folders) {
|
||||
folder.print(level + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let root: Directory = new Directory("", null, [], []);
|
||||
let current = root;
|
||||
|
||||
for(const line of input.split("\n")) {
|
||||
if(line[0] === "$") {
|
||||
if(line[2] === "c") {
|
||||
let name = line.slice(5);
|
||||
if(name === "/") current = root;
|
||||
else if(name === "..") current = current.parent!;
|
||||
else {
|
||||
let folder = current.folders.find(folder => folder.name === name);
|
||||
if(!folder) {
|
||||
folder = new Directory(name, current, [], []);
|
||||
current.folders.push(folder);
|
||||
}
|
||||
current = folder;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let [size, name] = line.split(" ");
|
||||
if(size === "dir") {
|
||||
const folder = new Directory(name, current, [], []);
|
||||
current.folders.push(folder);
|
||||
} else {
|
||||
current.files.push(new File(name, parseInt(size)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
root.print();
|
||||
|
||||
var acc = 0;
|
||||
|
||||
function traverse(directory: Directory) {
|
||||
let size = directory.getSize();
|
||||
if(size < 100000) {
|
||||
acc += size;
|
||||
}
|
||||
for(const folder of directory.folders) {
|
||||
traverse(folder);
|
||||
}
|
||||
}
|
||||
|
||||
traverse(root);
|
||||
74
2022/7/part2.ts
Normal file
74
2022/7/part2.ts
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
|
||||
const input = Deno.readTextFileSync("./input");
|
||||
|
||||
class File {
|
||||
constructor(public name: string, public size: number) {}
|
||||
}
|
||||
|
||||
class Directory {
|
||||
constructor(public name: string, public parent: Directory | null, public files: File[], public folders: Directory[]) {}
|
||||
|
||||
getSize(): number {
|
||||
return this.files.reduce((acc, file) => acc + file.size, 0) + this.folders.reduce((acc, folder) => acc + folder.getSize(), 0);
|
||||
}
|
||||
|
||||
print(level = 0) {
|
||||
console.log(" ".repeat(level * 2) + this.name + " (" + this.getSize() + ")");
|
||||
for(const file of this.files) {
|
||||
console.log(" ".repeat((level + 1) * 2) + file.name + " (" + file.size + ")");
|
||||
}
|
||||
for(const folder of this.folders) {
|
||||
folder.print(level + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let root: Directory = new Directory("", null, [], []);
|
||||
let current = root;
|
||||
|
||||
for(const line of input.split("\n")) {
|
||||
if(line[0] === "$") {
|
||||
if(line[2] === "c") {
|
||||
let name = line.slice(5);
|
||||
if(name === "/") current = root;
|
||||
else if(name === "..") current = current.parent!;
|
||||
else {
|
||||
let folder = current.folders.find(folder => folder.name === name);
|
||||
if(!folder) {
|
||||
folder = new Directory(name, current, [], []);
|
||||
current.folders.push(folder);
|
||||
}
|
||||
current = folder;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let [size, name] = line.split(" ");
|
||||
if(size === "dir") {
|
||||
const folder = new Directory(name, current, [], []);
|
||||
current.folders.push(folder);
|
||||
} else {
|
||||
current.files.push(new File(name, parseInt(size)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
root.print();
|
||||
|
||||
const MAX = 70000000;
|
||||
const unused = MAX - root.getSize();
|
||||
const minimum = 30000000 - unused;
|
||||
|
||||
let smallest: number | null = null;
|
||||
|
||||
function traverse(directory: Directory) {
|
||||
let size = directory.getSize();
|
||||
if(size > minimum && (smallest === null || size < smallest)) {
|
||||
smallest = size;
|
||||
}
|
||||
for(const folder of directory.folders) {
|
||||
traverse(folder);
|
||||
}
|
||||
}
|
||||
|
||||
traverse(root);
|
||||
console.log(smallest);
|
||||
8
2022/7/rust/.idea/.gitignore
vendored
Normal file
8
2022/7/rust/.idea/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
6
2022/7/rust/.idea/misc.xml
Normal file
6
2022/7/rust/.idea/misc.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MarkdownSettingsMigration">
|
||||
<option name="stateVersion" value="1" />
|
||||
</component>
|
||||
</project>
|
||||
8
2022/7/rust/.idea/modules.xml
Normal file
8
2022/7/rust/.idea/modules.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/rust.iml" filepath="$PROJECT_DIR$/.idea/rust.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
11
2022/7/rust/.idea/rust.iml
Normal file
11
2022/7/rust/.idea/rust.iml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="CPP_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
6
2022/7/rust/.idea/vcs.xml
Normal file
6
2022/7/rust/.idea/vcs.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
7
2022/7/rust/Cargo.lock
generated
Normal file
7
2022/7/rust/Cargo.lock
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "rust"
|
||||
version = "0.1.0"
|
||||
8
2022/7/rust/Cargo.toml
Normal file
8
2022/7/rust/Cargo.toml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "rust"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
1045
2022/7/rust/input
Normal file
1045
2022/7/rust/input
Normal file
File diff suppressed because it is too large
Load diff
107
2022/7/rust/src/main.rs
Normal file
107
2022/7/rust/src/main.rs
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
use std::borrow::Borrow;
|
||||
use std::cell::RefCell;
|
||||
use std::fs::File;
|
||||
use std::io::{BufRead, BufReader};
|
||||
use std::rc::Rc;
|
||||
|
||||
#[derive(Debug)]
|
||||
enum VNode {
|
||||
File(Rc<VFile>),
|
||||
Directory(Rc<VDirectory>)
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct VFile {
|
||||
name: String,
|
||||
size: usize
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct VDirectory {
|
||||
items: RefCell<Vec<VNode>>,
|
||||
name: String
|
||||
}
|
||||
|
||||
impl VNode {
|
||||
fn get_size(&self) -> usize {
|
||||
match self {
|
||||
VNode::Directory(dir)=> {
|
||||
dir.items.borrow().iter().map(|item| item.get_size()).sum()
|
||||
},
|
||||
VNode::File(file) => file.size
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
// read testinput line by line
|
||||
let input_file = File::open("input").unwrap();
|
||||
let mut root = Rc::new(VDirectory {
|
||||
items: RefCell::new(Vec::new()),
|
||||
name: String::from("")
|
||||
});
|
||||
let mut path = vec![root.clone()];
|
||||
|
||||
for line in BufReader::new(input_file).lines() {
|
||||
let line = line.unwrap();
|
||||
if line.starts_with("$") {
|
||||
if line.starts_with("$ cd") {
|
||||
let name = line[5..].to_string();
|
||||
if name == "/" {
|
||||
path = vec![root.clone()];
|
||||
continue;
|
||||
}
|
||||
if name == ".." {
|
||||
path.pop();
|
||||
continue;
|
||||
}
|
||||
let directory = VDirectory {
|
||||
items: RefCell::new(Vec::new()),
|
||||
name
|
||||
};
|
||||
let node = VNode::Directory(Rc::from(directory));
|
||||
path.last_mut().unwrap().items.borrow_mut().push(node);
|
||||
let directory = match path.last_mut().unwrap().items.borrow_mut().last_mut().unwrap() {
|
||||
VNode::File(_) => panic!("This should never happen"),
|
||||
VNode::Directory(dir) => dir.clone()
|
||||
};
|
||||
path.push(directory);
|
||||
}
|
||||
} else {
|
||||
let size_string = line[0..line.find(" ").unwrap()].to_string();
|
||||
if size_string == "dir" {
|
||||
continue;
|
||||
}
|
||||
let size = size_string.parse::<usize>().unwrap();
|
||||
let name = line[line.find(" ").unwrap() + 1..].to_string();
|
||||
let file = VFile {
|
||||
name,
|
||||
size
|
||||
};
|
||||
let node = VNode::File(Rc::from(file));
|
||||
path.last_mut().unwrap().items.borrow_mut().push(node);
|
||||
}
|
||||
}
|
||||
|
||||
dbg!(&root);
|
||||
let root_node = VNode::Directory(root);
|
||||
dbg!(root_node.get_size());
|
||||
|
||||
dbg!(get_size_if_smaller(&root_node));
|
||||
}
|
||||
|
||||
fn get_size_if_smaller(node: &VNode) -> usize {
|
||||
let node_size = node.get_size();
|
||||
match node {
|
||||
VNode::Directory(dir) => {
|
||||
let others = dir.items.borrow().iter().map(|item| get_size_if_smaller(item)).sum();
|
||||
println!("{} {} {} ", dir.name, node_size, others);
|
||||
if node_size < 100000 {
|
||||
node_size + others
|
||||
} else {
|
||||
others
|
||||
}
|
||||
},
|
||||
VNode::File(file) => 0
|
||||
}
|
||||
}
|
||||
23
2022/7/rust/testinput
Normal file
23
2022/7/rust/testinput
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
$ cd /
|
||||
$ ls
|
||||
dir a
|
||||
14848514 b.txt
|
||||
8504156 c.dat
|
||||
dir d
|
||||
$ cd a
|
||||
$ ls
|
||||
dir e
|
||||
29116 f
|
||||
2557 g
|
||||
62596 h.lst
|
||||
$ cd e
|
||||
$ ls
|
||||
584 i
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd d
|
||||
$ ls
|
||||
4060174 j
|
||||
8033020 d.log
|
||||
5626152 d.ext
|
||||
7214296 k
|
||||
23
2022/7/testinput
Normal file
23
2022/7/testinput
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
$ cd /
|
||||
$ ls
|
||||
dir a
|
||||
14848514 b.txt
|
||||
8504156 c.dat
|
||||
dir d
|
||||
$ cd a
|
||||
$ ls
|
||||
dir e
|
||||
29116 f
|
||||
2557 g
|
||||
62596 h.lst
|
||||
$ cd e
|
||||
$ ls
|
||||
584 i
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd d
|
||||
$ ls
|
||||
4060174 j
|
||||
8033020 d.log
|
||||
5626152 d.ext
|
||||
7214296 k
|
||||
99
2022/8/input
Normal file
99
2022/8/input
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
201020000020303322022230330032044230113031313453252125532013420102412124020323433212213002201211011
|
||||
221122211131113232104233242130410414321444153244521454234151454403433303343014014211200020130201021
|
||||
102112213233022132323042313331110325141414514433444245122521543551413102221240240323013132010021012
|
||||
212122031103022003403234000212443324321434314422155233242453534233211343234422013224013220221331221
|
||||
120021002213013004322300004342351223253453131112554355354434514543424530141014330412112220012030100
|
||||
110030220312301221303240114023511313251235452554153313533532225523321252124201204244311022232032121
|
||||
121312201031322130110230412421442225245334123131515145212234133433233415522311231022134311321000221
|
||||
020100230031324430434024341335115412553414512562656363444145352221421522445422002030434102031122130
|
||||
220000230104403311312243233214515515435446342656324242626366645135422532125214432110131210310103230
|
||||
003003023131341211210331221223524241336226535362556324264636464225534143523153343232320341113023131
|
||||
112223200042240014101242254443335526426222663425434645266646256425232421555443522443343343040222212
|
||||
231012311120242400241444133551534245553543635524435534563436246556633523214513454134202402412222032
|
||||
220330240202202404535344311352665323254453226554432365224562355554363363151333234523041303220413221
|
||||
121002021430011334451344213364255233644624234666262534356622453454246624421544511143144103011020033
|
||||
202020322113024543532552542653345533456452562654645534656235562433434436334415143435524332020024003
|
||||
310110320114244152352314562242344252626553665353436643466362666566456525655324341215522140012022100
|
||||
110221133144051254241134634243634566337575354377753676574754763556336655255552215423315301120131010
|
||||
023103330131235322233516355555532625334656646336557633446767674554556336223544425443251340040433200
|
||||
132432123105353411452624322225325575374337563365746736564554336544355525366432631211232245344411413
|
||||
033132343444521244516544436535523466654537667544744476663746573636745636442363332524245254113330422
|
||||
240212240325552121365552256263733535565735746335463466567544543567734476366523225543133253533443332
|
||||
014040044113115313255646226444543555553356676643554577634743436547456666263336536224543412443204140
|
||||
400012201233335543436555243267766533635344636448755547767763564464353465424466233534541535134330223
|
||||
310321424323512214423252666345734663434464454477755755574766576757375645452364256455231125523143113
|
||||
120341315235134355553326253673657737467854647875554685867768888363564466744522656643243411411202421
|
||||
211424435534222552464542277754654673778574565664685656668785788674337456733762422665562115243331420
|
||||
041224121545426324343433735556775558747778655475548446546444644855836447336533256244246131551211221
|
||||
323022135312246564666246753547457576485774746455864785476454854456677544744755446355253333324224223
|
||||
422404312454164254356374377556777545446888854765488865674655784555588374336774323453664635521512403
|
||||
320111121333525633233467447363474754757666544975878856568786557468785844346456746244362554214155023
|
||||
432133454253265442345345367564745678767664779676785676798694645576758675675747735332642463312112442
|
||||
303044543315533422426665357566548776856698687968965877966777576476455648334774674336234564143523313
|
||||
141124135323365336635663746548446444577695886575586577666799555466665865475376647553423643512423530
|
||||
214355155153534342435373445867856445699798866765787679777879657677674465463366466546466355423513541
|
||||
003314452422264644754655647484847787556699986866665997688995697585544577454635535652562622625554232
|
||||
315232221245242552336775778457657668657989955685775566796966866855746586478664734656234355514532113
|
||||
114523555126323526455355657567578457756678568766677866966877997875946568856775756354534423351113425
|
||||
323154212432364243635574378486488795588786589898766869768775675985574687587653464466455563533245312
|
||||
315513155645632255373634478746559855698786877669779868866968696889595665758655537764544622435452211
|
||||
155455415243234246537643657878448578656566766676798978896899986985897445746483446365556345462215431
|
||||
132413352225424265436564845767665787788796666978899699878767689797576774668475563457633455426325145
|
||||
035342443624642673756568758755467769877698897769966699866679798958679645876645565566733542646215143
|
||||
252343432363525635777736884647665956669776899668776967669967686779669885785475437576333252562122345
|
||||
411311213323642436666665454786686569677689978787778968768667697778676656447454536774434556532524442
|
||||
325115355463345543664455455688586966988886788699779997996789877987877886457686473773546434644314535
|
||||
433555536433446454546485748745986879998796687879987888976878898856799789848876646575536265334111424
|
||||
545552165343435735755454777565959567986989967798977988887789877895885889675565554633442654643654425
|
||||
534223446223323736633585867855878669869696967889999787899679788795669667766454554437732624542231312
|
||||
115411526646527737747346785446589788969689987798978778889786868668995757566484657566775233634435121
|
||||
344525324534526535464368486565899669977988997898987977887886966767756889676855867574773434232411251
|
||||
212512245524437756563668454567599955986988888977789987788876798885976658848846474664543353623513415
|
||||
551242242534355353554587765457785895879698687978789997977777789686767995845757837367743655563315111
|
||||
333112226262653563744368577646597976867687789887788779798677766986556597758484573466337344546512342
|
||||
121453322644444354654584784688689598898878667899999977787999989686675767768757754646344363534211134
|
||||
415125366435452537577667458578656866778878878989887897798696876865789875444444476657445326253554534
|
||||
531113124455566744773445888477797596776969696979979799976899787979559588468555864477433426232435435
|
||||
444525352562435775533756588888599876778978668889988889987788876698578696586586766446442222434453551
|
||||
011423454424543744555648557788899588786976898979897878676876899758695857847865556577643446232444355
|
||||
113421412445663737435776446764868968996886799867787678867889686575587867867668433433575266324212535
|
||||
145313224636652244437535645477787898657898779786667978667976987965688977844457744773662435264235354
|
||||
322444552534333347547755588474678658788868996769867787869968657869969757854476677475346522364245435
|
||||
155451413634255633367675574887588657599988966986786889869999699857556674786566436355453655255335313
|
||||
011115224526426436457765544677789855685775669668769679776898685585875448877747355533463542265253313
|
||||
421513353634556643545746565788448798995557797867679997976966568778684755844657453474324363644422132
|
||||
424124123234232356335437365774776476777675995766896668885965685798754488687775575546465336614141113
|
||||
224525232426666356376347735456687547888958866599959977868595685699855768855537645475325566411521441
|
||||
010452514236325625664763535865858674855756888557776597995795768884668555854353653373442452223555110
|
||||
233452123533246442646765653487474644476798588579559689875968697974478784843437774765534656111433334
|
||||
334334531432222443267675376487857555675967869879855979697965677677654566636735646454225662144133140
|
||||
001225254155444434645666766357784466776477977878858787696555844667676744356533335232323623531345103
|
||||
302135311134435335527576674573867586767686688596997797787797478864775445673573367224525231252152212
|
||||
021404135525242534545665443545765777746456888579777989695865687784648643756566573366254213344555213
|
||||
044343323333323665255564365457338554886888546875566766477546647686484333337574565545432645234453401
|
||||
231000311153344624642634556547376875677587555667576684856587746845654457543436343466453314145250040
|
||||
200012424534143465246433675577347368864864757878448674875474676547545557443443256425556112543112221
|
||||
224122332451313652563435455457334565685444887787864765466648855483744576536663554253355253222220142
|
||||
043224025444321226454346556743664643465465845468785848846464877773545666355223262524421325243212321
|
||||
011040433124534116256654345354363635553646677845786467868647636353444766632635336654314321515320323
|
||||
331402111232145443263353466367765354433665344655866647668766566467474454662654334463114315541101210
|
||||
141103243533333225463465245644376767537677653735747535776456356376475676223566524434314115221424420
|
||||
122341124454254443564665254462753646774546734435734653654337646565366653525255342315353143231112131
|
||||
330241244331352334326263342332334543656756577774736743347437637454636626622453322353151335342031410
|
||||
101011141113311355121535244662346675667453474664477373444434537764332345353422642151445213331300321
|
||||
202434003224355125334313254642523662545676534675755643446547547664446622455236424145114330232141343
|
||||
223234300341032154514515266265623564465444376553447554737466375246532435533642331333435534213043030
|
||||
311120432040113211154333223444563336266242444543434767633353325334535623424341534254112432413322201
|
||||
201001024310404525411124234435523356244264563453345644646332455353525233353423222122553440131133000
|
||||
230101031024214425345433251153455563362556546652446245554534555434622455613435314215221041142342212
|
||||
002221213412420132124132321151523626344332445632454654365454525366352463343212512523014244333223200
|
||||
100132021423121332553234241241144454442525436534326442642454344636254511213144453134023432124110122
|
||||
010031101411142421225123351233451143554553325465225435565244533246241145141153143241213213041000302
|
||||
023323303001214031042243121311443352365626544526226433435636553353223153445124413242211232310121003
|
||||
010332220132301212403032412131445344225445255636665232224563245351225444153421101444022242211023131
|
||||
200231322211423420140141514424354541422215543125636226333224413143525251333221024210333121131120023
|
||||
110121032233102443112231002123151545531214331415224411123531145123422253222101330122000430133010030
|
||||
011001132223211344301013433412413154113522251445542421555254214443451322303310300203231022121333310
|
||||
021200232231012000201011020121322235235233535533352543221242332553452143101022000414323230132102112
|
||||
002101113203023310140322141401244212541455241424152514451444325212444422133103022314330130021132222
|
||||
100002203323321203402423434324400223225443334554221555514312335522000320202144212403130203231300110
|
||||
40
2022/8/part1.ts
Normal file
40
2022/8/part1.ts
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
|
||||
const input = Deno.readTextFileSync("./input");
|
||||
|
||||
const lines = input.split("\n").map(t => t.split("").map(t => parseInt(t)));
|
||||
|
||||
let hiddenCount = 0;
|
||||
let visibleCount = 0;
|
||||
let edge = 0;
|
||||
let interior = 0;
|
||||
|
||||
for(let x = 0; x < lines.length; x++) {
|
||||
for(let y = 0; y < lines[x].length; y++) {
|
||||
const num = lines[x][y];
|
||||
|
||||
// get all numbers in row;
|
||||
const rowBefore = lines[x].slice(0, y);
|
||||
const rowAfter = lines[x].slice(y + 1);
|
||||
const columnBefore = lines.map(t => t[y]).slice(0, x);
|
||||
const columnAfter = lines.map(t => t[y]).slice(x + 1);
|
||||
const isEdge = rowBefore.length == 0 || rowAfter.length == 0 || columnBefore.length == 0 || columnAfter.length == 0
|
||||
|
||||
if(isEdge || (rowBefore.every(t => t < num) || rowAfter.every(t => t < num) || columnAfter.every(t => t < num) || columnBefore.every(t => t < num))) {
|
||||
visibleCount++;
|
||||
if(isEdge) {
|
||||
edge++;
|
||||
} else {
|
||||
console.log(num, rowBefore, rowAfter, columnBefore, columnAfter);
|
||||
console.log("visible interior");
|
||||
interior++;
|
||||
}
|
||||
} else {
|
||||
console.log(num, rowBefore, rowAfter, columnBefore, columnAfter);
|
||||
hiddenCount++;
|
||||
console.log("hidden");
|
||||
}
|
||||
}
|
||||
console.log("ROW", x);
|
||||
}
|
||||
|
||||
console.log({ visibleCount, hiddenCount, edge, interior });
|
||||
43
2022/8/part2.ts
Normal file
43
2022/8/part2.ts
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
|
||||
const input = Deno.readTextFileSync("./input");
|
||||
|
||||
const lines = input.split("\n").map(t => t.split("").map(t => parseInt(t)));
|
||||
|
||||
|
||||
let highestCount = 0;
|
||||
|
||||
function countLength(row: number[], num: number) {
|
||||
let count = 0;
|
||||
for(let i = 0; i < row.length; i++) {
|
||||
count++;
|
||||
if(row[i] >= num) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
for(let x = 0; x < lines.length; x++) {
|
||||
for(let y = 0; y < lines[x].length; y++) {
|
||||
const num = lines[x][y];
|
||||
|
||||
// get all numbers in row;
|
||||
const rowBefore = lines[x].slice(0, y).reverse();
|
||||
const rowAfter = lines[x].slice(y + 1);
|
||||
const columnBefore = lines.map(t => t[y]).slice(0, x).reverse();
|
||||
const columnAfter = lines.map(t => t[y]).slice(x + 1);
|
||||
const isEdge = rowBefore.length == 0 || rowAfter.length == 0 || columnBefore.length == 0 || columnAfter.length == 0;
|
||||
if(isEdge) continue;
|
||||
const rowBeforeCount = countLength(rowBefore, num);
|
||||
const rowAfterCount = countLength(rowAfter, num);
|
||||
const columnBeforeCount = countLength(columnBefore, num);
|
||||
const columnAfterCount = countLength(columnAfter, num);
|
||||
const count = rowBeforeCount * rowAfterCount * columnBeforeCount * columnAfterCount;
|
||||
console.log(`[${x} ${y}]`, num.toString(), count, rowBeforeCount, rowAfterCount, columnBeforeCount, columnAfterCount);
|
||||
if(count > highestCount) {
|
||||
highestCount = count;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(highestCount);
|
||||
5
2022/8/testinput
Normal file
5
2022/8/testinput
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
30373
|
||||
25512
|
||||
65332
|
||||
33549
|
||||
35390
|
||||
7
2022/README.md
Normal file
7
2022/README.md
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Advent of code
|
||||
|
||||
Santa's reindeer typically eat regular reindeer food, but they need a lot of **magical energy** to deliver presents on Christmas. For that, their favorite snack is a special type of **star** fruit that only grows deep in the jungle. The Elves have brought you on their annual expedition to the grove where the fruit grows.
|
||||
|
||||
To supply enough magical energy, the expedition needs to retrieve a minimum of **fifty stars** by December 25th. Although the Elves assure you that the grove has plenty of fruit, you decide to grab any fruit you see along the way, just in case.
|
||||
|
||||
Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. **Each puzzle grants one star.** Good luck!
|
||||
7
2023/1/Cargo.lock
generated
Normal file
7
2023/1/Cargo.lock
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "first"
|
||||
version = "0.1.0"
|
||||
8
2023/1/Cargo.toml
Normal file
8
2023/1/Cargo.toml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
[package]
|
||||
name = "first"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
26
2023/1/README.md
Normal file
26
2023/1/README.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# Day 1: Trebuchet?!
|
||||
|
||||
Something is wrong with global snow production, and you've been selected to take a look. The Elves have even given you a map; on it, they've used stars to mark the top fifty locations that are likely to be having problems.
|
||||
|
||||
You've been doing this long enough to know that to restore snow operations, you need to check all fifty stars by December 25th.
|
||||
|
||||
Collect stars by solving puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck!
|
||||
|
||||
You try to ask why they can't just use a weather machine ("not powerful enough") and where they're even sending you ("the sky") and why your map looks mostly blank ("you sure ask a lot of questions") and hang on did you just say the sky ("of course, where do you think snow comes from") when you realize that the Elves are already loading you into a trebuchet ("please hold still, we need to strap you in").
|
||||
|
||||
As they're making the final adjustments, they discover that their calibration document (your puzzle input) has been amended by a very young Elf who was apparently just excited to show off her art skills. Consequently, the Elves are having trouble reading the values on the document.
|
||||
|
||||
The newly-improved calibration document consists of lines of text; each line originally contained a specific calibration value that the Elves now need to recover. On each line, the calibration value can be found by combining the first digit and the last digit (in that order) to form a single two-digit number.
|
||||
|
||||
For example:
|
||||
|
||||
```txt
|
||||
1abc2
|
||||
pqr3stu8vwx
|
||||
a1b2c3d4e5f
|
||||
treb7uchet
|
||||
```
|
||||
|
||||
In this example, the calibration values of these four lines are 12, 38, 15, and 77. Adding these together produces 142.
|
||||
|
||||
Consider your entire calibration document. What is the sum of all of the calibration values?
|
||||
4
2023/1/input1
Normal file
4
2023/1/input1
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
1abc2
|
||||
pqr3stu8vwx
|
||||
a1b2c3d4e5f
|
||||
treb7uchet
|
||||
1000
2023/1/input2
Normal file
1000
2023/1/input2
Normal file
File diff suppressed because it is too large
Load diff
7
2023/1/input3
Normal file
7
2023/1/input3
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
two1nine
|
||||
eightwothree
|
||||
abcone2threexyz
|
||||
xtwone3four
|
||||
4nineeightseven2
|
||||
zoneight234
|
||||
7pqrstsixteen
|
||||
4
2023/1/part1.py
Normal file
4
2023/1/part1.py
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import re
|
||||
numbers = [(int(re.match(r".*?(\d)", x)[1]) * 10 + int(re.match(r"(?:.*)(\d)", x)[1])) for x in open("input3", "r") if re.match(r".*?\d+", x) is not None]
|
||||
print(sum(numbers))
|
||||
print(numbers)
|
||||
6
2023/1/part2.py
Normal file
6
2023/1/part2.py
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import re
|
||||
wordNumbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
|
||||
parse = lambda x: int(x) if x.isdigit() else wordNumbers.index(x)
|
||||
numbers = [(parse(re.match(r".*?(\d|one|two|three|four|five|six|seven|eight|nine)", x)[1]) * 10 + parse(re.match(r"(?:.*)(\d|one|two|three|four|five|six|seven|eight|nine)", x)[1])) for x in open("input2", "r") if re.match(r".*?(\d|one|two|three|four|five|six|seven|eight|nine)", x) is not None]
|
||||
print(numbers)
|
||||
print(sum(numbers))
|
||||
73
2023/1/src/main.rs
Normal file
73
2023/1/src/main.rs
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
use std::{io::{BufReader, BufRead}, fs::File, ops::Index};
|
||||
|
||||
fn part1(file: &str) -> i32 {
|
||||
let file = BufReader::new(File::open(file).unwrap());
|
||||
let solution = file.lines()
|
||||
.map(|l| l.unwrap())
|
||||
.map(|l| (l.match_indices(char::is_numeric).next().unwrap().0, l.match_indices(char::is_numeric).last().unwrap().0, l))
|
||||
.map(|(start,end,l)| (l[start..start+1].to_string() + &l[end..end+1]))
|
||||
.map(|l| l.parse::<i32>().unwrap())
|
||||
.fold(0, |acc, x| acc + x);
|
||||
solution
|
||||
}
|
||||
|
||||
fn part2(file: &str) -> i32 {
|
||||
let file = BufReader::new(File::open(file).unwrap());
|
||||
let inumbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
|
||||
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
|
||||
let find_number = |s: &str| {
|
||||
if let Some(num) = inumbers.iter().position(|n| s.starts_with(n)) { Some(num) }
|
||||
else if let Some(num) = numbers.iter().position(|n| s.starts_with(n)) { Some(num) }
|
||||
else { None }
|
||||
};
|
||||
let solution = file.lines()
|
||||
.map(|l| l.unwrap() + " ")
|
||||
.map(|l| {
|
||||
(l
|
||||
.chars()
|
||||
.collect::<Vec<char>>()
|
||||
.windows(5)
|
||||
.map(|w| w.iter().collect::<String>())
|
||||
.map(|w| find_number(&w))
|
||||
.filter(|w| w.is_some())
|
||||
.map(|w| w.unwrap())
|
||||
.collect::<Vec<usize>>(), l)
|
||||
})
|
||||
.map(|(nums, _)| nums.first().unwrap() * 10 + nums.last().unwrap())
|
||||
.fold(0, |acc, x| acc + x) as i32;
|
||||
|
||||
solution
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
#[test]
|
||||
fn part1_input1() {
|
||||
assert_eq!(part1("input1"), 142)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn part1_input2() {
|
||||
assert_eq!(part1("input2"), 54597)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn part2_input1() {
|
||||
assert_eq!(part2("input1"), 142)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn part2_input2() {
|
||||
assert_eq!(part2("input2"), 54504)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn part2_input3() {
|
||||
assert_eq!(part2("input3"), 281)
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
todo!();
|
||||
}
|
||||
1
2023/1/target/.rustc_info.json
Normal file
1
2023/1/target/.rustc_info.json
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"rustc_fingerprint":18191212223194315998,"outputs":{"7808843031524471736":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/dan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu\noff\npacked\nunpacked\n___\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.73.0 (cc66ad468 2023-10-03)\nbinary: rustc\ncommit-hash: cc66ad468955717ab92600c770da8c1601a4ff33\ncommit-date: 2023-10-03\nhost: x86_64-unknown-linux-gnu\nrelease: 1.73.0\nLLVM version: 17.0.2\n","stderr":""}},"successes":{}}
|
||||
3
2023/1/target/CACHEDIR.TAG
Normal file
3
2023/1/target/CACHEDIR.TAG
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Signature: 8a477f597d28d172789f06886806bc55
|
||||
# This file is a cache directory tag created by cargo.
|
||||
# For information about cache directory tags see https://bford.info/cachedir/
|
||||
0
2023/1/target/debug/.cargo-lock
Normal file
0
2023/1/target/debug/.cargo-lock
Normal file
|
|
@ -0,0 +1 @@
|
|||
14edcefe747430a1
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":11039742474438789458,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-1b5225e4dcac8745/dep-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0}
|
||||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
This file has an mtime of when this was started.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"}
|
||||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
This file has an mtime of when this was started.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"}
|
||||
|
|
@ -0,0 +1 @@
|
|||
9a46df3128b66bb9
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":18326522262828315194,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-5644decaa7aef8c9/dep-test-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0}
|
||||
|
|
@ -0,0 +1 @@
|
|||
a58f118c46650732
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":13126374248311259211,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-c1729aca58c1b71a/dep-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0}
|
||||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
This file has an mtime of when this was started.
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"function `part1` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":63,"byte_end":68,"line_start":3,"line_end":3,"column_start":4,"column_end":9,"is_primary":true,"text":[{"text":"fn part1(file: &str) -> i32 {","highlight_start":4,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: function `part1` is never used\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:3:4\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m3\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn part1(file: &str) -> i32 {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"function `part2` is never used","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":515,"byte_end":520,"line_start":14,"line_end":14,"column_start":4,"column_end":9,"is_primary":true,"text":[{"text":"fn part2(file: &str) -> i32 {","highlight_start":4,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: function `part2` is never used\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:14:4\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m14\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn part2(file: &str) -> i32 {\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\n\n"}
|
||||
{"message":"3 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 3 warnings emitted\u001b[0m\n\n"}
|
||||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
This file has an mtime of when this was started.
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
{"message":"unused import: `ops::Index`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src/main.rs","byte_start":46,"byte_end":56,"line_start":1,"line_end":1,"column_start":47,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":47,"highlight_end":57}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src/main.rs","byte_start":44,"byte_end":56,"line_start":1,"line_end":1,"column_start":45,"column_end":57,"is_primary":true,"text":[{"text":"use std::{io::{BufReader, BufRead}, fs::File, ops::Index};","highlight_start":45,"highlight_end":57}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused import: `ops::Index`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/main.rs:1:47\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{io::{BufReader, BufRead}, fs::File, ops::Index};\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
|
||||
{"message":"1 warning emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: 1 warning emitted\u001b[0m\n\n"}
|
||||
|
|
@ -0,0 +1 @@
|
|||
43fe113ee1ab0dd3
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"rustc":16895609601713598366,"features":"[]","target":7422450677920272884,"profile":16741232958890476625,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug/.fingerprint/first-e53bd6844cb209ab/dep-test-bin-first"}}],"rustflags":["-C","link-arg=-fuse-ld=/usr/bin/mold"],"metadata":7797948686568424061,"config":16520146531172537597,"compile_kind":0}
|
||||
BIN
2023/1/target/debug/deps/first-1b5225e4dcac8745
Executable file
BIN
2023/1/target/debug/deps/first-1b5225e4dcac8745
Executable file
Binary file not shown.
5
2023/1/target/debug/deps/first-1b5225e4dcac8745.d
Normal file
5
2023/1/target/debug/deps/first-1b5225e4dcac8745.d
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-1b5225e4dcac8745: src/main.rs
|
||||
|
||||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-1b5225e4dcac8745.d: src/main.rs
|
||||
|
||||
src/main.rs:
|
||||
5
2023/1/target/debug/deps/first-5644decaa7aef8c9.d
Normal file
5
2023/1/target/debug/deps/first-5644decaa7aef8c9.d
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-5644decaa7aef8c9.rmeta: src/main.rs
|
||||
|
||||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-5644decaa7aef8c9.d: src/main.rs
|
||||
|
||||
src/main.rs:
|
||||
|
|
@ -0,0 +1 @@
|
|||
Map<Map<Map<std::io::Lines<BufReader<File>>, [closure@src/main.rs:25:14: 25:17]>, [closure@src/main.rs:26:14: 26:17]>, [closure@src/main.rs:37:14: 37:25]>
|
||||
5
2023/1/target/debug/deps/first-c1729aca58c1b71a.d
Normal file
5
2023/1/target/debug/deps/first-c1729aca58c1b71a.d
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-c1729aca58c1b71a.rmeta: src/main.rs
|
||||
|
||||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-c1729aca58c1b71a.d: src/main.rs
|
||||
|
||||
src/main.rs:
|
||||
|
|
@ -0,0 +1 @@
|
|||
Map<Map<Map<std::io::Lines<BufReader<File>>, [closure@src/main.rs:25:14: 25:17]>, [closure@src/main.rs:26:14: 26:17]>, [closure@src/main.rs:37:14: 37:25]>
|
||||
BIN
2023/1/target/debug/deps/first-e53bd6844cb209ab
Executable file
BIN
2023/1/target/debug/deps/first-e53bd6844cb209ab
Executable file
Binary file not shown.
5
2023/1/target/debug/deps/first-e53bd6844cb209ab.d
Normal file
5
2023/1/target/debug/deps/first-e53bd6844cb209ab.d
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-e53bd6844cb209ab: src/main.rs
|
||||
|
||||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/deps/first-e53bd6844cb209ab.d: src/main.rs
|
||||
|
||||
src/main.rs:
|
||||
0
2023/1/target/debug/deps/libfirst-5644decaa7aef8c9.rmeta
Normal file
0
2023/1/target/debug/deps/libfirst-5644decaa7aef8c9.rmeta
Normal file
0
2023/1/target/debug/deps/libfirst-c1729aca58c1b71a.rmeta
Normal file
0
2023/1/target/debug/deps/libfirst-c1729aca58c1b71a.rmeta
Normal file
BIN
2023/1/target/debug/first
Executable file
BIN
2023/1/target/debug/first
Executable file
Binary file not shown.
1
2023/1/target/debug/first.d
Normal file
1
2023/1/target/debug/first.d
Normal file
|
|
@ -0,0 +1 @@
|
|||
/home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/target/debug/first: /home/dan/projects/node/cybersec/challenges/adventOfCode2023/1/src/main.rs
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue