Compare commits
2 Commits
4e8c71543c
...
25a91448df
Author | SHA1 | Date |
---|---|---|
Alfred Melch | 25a91448df | 4 weeks ago |
Alfred Melch | 999392539f | 4 weeks ago |
@ -0,0 +1,77 @@
|
|||||||
|
https://adventofcode.com/2023/day/1
|
||||||
|
|
||||||
|
## \--- 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](/2015/day/1) ("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](https://en.wikipedia.org/wiki/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:
|
||||||
|
|
||||||
|
[code]
|
||||||
|
|
||||||
|
1abc2
|
||||||
|
pqr3stu8vwx
|
||||||
|
a1b2c3d4e5f
|
||||||
|
treb7uchet
|
||||||
|
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
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?_
|
||||||
|
|
||||||
|
## \--- Part Two ---
|
||||||
|
|
||||||
|
Your calculation isn't quite right. It looks like some of the digits are
|
||||||
|
actually _spelled out with letters_ : `one`, `two`, `three`, `four`, `five`,
|
||||||
|
`six`, `seven`, `eight`, and `nine` _also_ count as valid "digits".
|
||||||
|
|
||||||
|
Equipped with this new information, you now need to find the real first and
|
||||||
|
last digit on each line. For example:
|
||||||
|
|
||||||
|
[code]
|
||||||
|
|
||||||
|
two1nine
|
||||||
|
eightwothree
|
||||||
|
abcone2threexyz
|
||||||
|
xtwone3four
|
||||||
|
4nineeightseven2
|
||||||
|
zoneight234
|
||||||
|
7pqrstsixteen
|
||||||
|
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
In this example, the calibration values are `29`, `83`, `13`, `24`, `42`,
|
||||||
|
`14`, and `76`. Adding these together produces `_281_`.
|
||||||
|
|
||||||
|
_What is the sum of all of the calibration values?_
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
1abc2
|
||||||
|
pqr3stu8vwx
|
||||||
|
a1b2c3d4e5f
|
||||||
|
treb7uchet
|
@ -0,0 +1,7 @@
|
|||||||
|
two1nine
|
||||||
|
eightwothree
|
||||||
|
abcone2threexyz
|
||||||
|
xtwone3four
|
||||||
|
4nineeightseven2
|
||||||
|
zoneight234
|
||||||
|
7pqrstsixteen
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
sed 's/[a-z]//g' | \
|
||||||
|
tee >(cut -c 1 > /tmp/firstdigits) | \
|
||||||
|
tee >(rev | cut -c 1 > /tmp/seconddigits) > /dev/null | \
|
||||||
|
paste - /tmp/firstdigits /tmp/seconddigits -d "" | \
|
||||||
|
paste -sd+ | \
|
||||||
|
bc
|
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
sed 's/one/\01\0/g;s/two/\02\0/g;s/three/\03\0/g;s/four/\04\0/g;s/five/\05\0/g' | \
|
||||||
|
sed 's/six/\06\0/g;s/seven/\07\0/g;s/eight/\08\0/g;s/nine/\09\0/g' | \
|
||||||
|
./part1.sh
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
||||||
|
sed 's/[a-z]//g' | \
|
||||||
|
tee >(cut -c 1 > /tmp/firstdigits) | \
|
||||||
|
tee >(rev | cut -c 1 > /tmp/seconddigits) > /dev/null | \
|
||||||
|
paste - /tmp/firstdigits /tmp/seconddigits -d "" | \
|
||||||
|
paste -sd+ | \
|
||||||
|
bc
|
@ -0,0 +1,58 @@
|
|||||||
|
https://adventofcode.com/2023/day/2
|
||||||
|
|
||||||
|
## \--- Day 2: Cube Conundrum ---
|
||||||
|
|
||||||
|
You're launched high into the atmosphere! The apex of your trajectory just
|
||||||
|
barely reaches the surface of a large island floating in the sky. You gently
|
||||||
|
land in a fluffy pile of leaves. It's quite cold, but you don't see much snow.
|
||||||
|
An Elf runs over to greet you.
|
||||||
|
|
||||||
|
The Elf explains that you've arrived at _Snow Island_ and apologizes for the
|
||||||
|
lack of snow. He'll be happy to explain the situation, but it's a bit of a
|
||||||
|
walk, so you have some time. They don't get many visitors up here; would you
|
||||||
|
like to play a game in the meantime?
|
||||||
|
|
||||||
|
As you walk, the Elf shows you a small bag and some cubes which are either
|
||||||
|
red, green, or blue. Each time you play this game, he will hide a secret
|
||||||
|
number of cubes of each color in the bag, and your goal is to figure out
|
||||||
|
information about the number of cubes.
|
||||||
|
|
||||||
|
To get information, once a bag has been loaded with cubes, the Elf will reach
|
||||||
|
into the bag, grab a handful of random cubes, show them to you, and then put
|
||||||
|
them back in the bag. He'll do this a few times per game.
|
||||||
|
|
||||||
|
You play several games and record the information from each game (your puzzle
|
||||||
|
input). Each game is listed with its ID number (like the `11` in `Game 11:
|
||||||
|
...`) followed by a semicolon-separated list of subsets of cubes that were
|
||||||
|
revealed from the bag (like `3 red, 5 green, 4 blue`).
|
||||||
|
|
||||||
|
For example, the record of a few games might look like this:
|
||||||
|
|
||||||
|
[code]
|
||||||
|
|
||||||
|
Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
|
||||||
|
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
|
||||||
|
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
|
||||||
|
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
|
||||||
|
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green
|
||||||
|
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
In game 1, three sets of cubes are revealed from the bag (and then put back
|
||||||
|
again). The first set is 3 blue cubes and 4 red cubes; the second set is 1 red
|
||||||
|
cube, 2 green cubes, and 6 blue cubes; the third set is only 2 green cubes.
|
||||||
|
|
||||||
|
The Elf would first like to know which games would have been possible if the
|
||||||
|
bag contained _only 12 red cubes, 13 green cubes, and 14 blue cubes_?
|
||||||
|
|
||||||
|
In the example above, games 1, 2, and 5 would have been _possible_ if the bag
|
||||||
|
had been loaded with that configuration. However, game 3 would have been
|
||||||
|
_impossible_ because at one point the Elf showed you 20 red cubes at once;
|
||||||
|
similarly, game 4 would also have been _impossible_ because the Elf showed you
|
||||||
|
15 blue cubes at once. If you add up the IDs of the games that would have been
|
||||||
|
possible, you get `_8_`.
|
||||||
|
|
||||||
|
Determine which games would have been possible if the bag had been loaded with
|
||||||
|
only 12 red cubes, 13 green cubes, and 14 blue cubes. _What is the sum of the
|
||||||
|
IDs of those games?_
|
||||||
|
|
@ -0,0 +1,5 @@
|
|||||||
|
Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
|
||||||
|
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
|
||||||
|
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
|
||||||
|
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
|
||||||
|
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green
|
@ -0,0 +1,100 @@
|
|||||||
|
Game 1: 1 green, 6 red, 4 blue; 2 blue, 6 green, 7 red; 3 red, 4 blue, 6 green; 3 green; 3 blue, 2 green, 1 red
|
||||||
|
Game 2: 2 blue, 4 red, 7 green; 17 red, 3 blue, 2 green; 3 green, 14 red, 1 blue
|
||||||
|
Game 3: 12 blue, 3 red, 1 green; 8 blue, 9 red; 1 blue, 1 green, 9 red; 4 blue, 1 green, 9 red
|
||||||
|
Game 4: 2 red, 10 green, 5 blue; 11 blue, 4 green; 6 green, 7 blue, 2 red; 4 blue, 9 green; 6 green, 1 red, 5 blue
|
||||||
|
Game 5: 10 green, 5 blue, 5 red; 10 blue, 13 green; 2 red, 12 blue; 9 green, 9 red
|
||||||
|
Game 6: 2 red, 3 green; 1 blue, 15 red, 2 green; 1 green, 7 red
|
||||||
|
Game 7: 16 blue, 4 green, 9 red; 6 red, 2 blue, 12 green; 2 red, 5 green, 14 blue; 11 blue, 13 red; 10 blue, 3 red, 17 green; 1 green, 12 blue
|
||||||
|
Game 8: 14 red, 12 green, 1 blue; 5 blue, 7 green, 12 red; 8 green, 1 red, 8 blue; 8 blue, 2 green, 15 red; 9 blue, 12 red, 10 green; 4 blue, 15 red, 1 green
|
||||||
|
Game 9: 2 red, 7 green, 5 blue; 1 red, 5 blue, 13 green; 5 blue
|
||||||
|
Game 10: 4 red, 1 green, 4 blue; 7 green, 8 blue, 4 red; 9 green, 3 red, 8 blue; 5 red, 2 green, 7 blue
|
||||||
|
Game 11: 4 green, 1 blue, 1 red; 3 green, 3 red, 1 blue; 3 green, 1 red, 1 blue
|
||||||
|
Game 12: 7 red, 6 green, 12 blue; 6 blue, 8 green, 3 red; 12 green, 5 blue, 4 red; 3 red, 16 blue, 8 green; 12 red, 11 green, 6 blue
|
||||||
|
Game 13: 2 green, 5 red, 12 blue; 8 green, 12 red, 4 blue; 6 blue, 7 green, 13 red
|
||||||
|
Game 14: 1 blue, 7 green, 5 red; 1 blue, 8 green, 6 red; 3 green, 1 blue, 4 red
|
||||||
|
Game 15: 11 red, 8 blue, 1 green; 11 red, 1 green; 3 green, 8 red, 2 blue; 4 blue, 11 red, 1 green; 5 blue, 5 red, 2 green
|
||||||
|
Game 16: 18 green, 4 blue, 2 red; 5 blue, 11 green, 10 red; 8 red, 2 blue, 14 green; 8 red, 7 blue, 1 green; 3 red, 5 blue, 17 green; 6 blue, 5 green, 11 red
|
||||||
|
Game 17: 3 blue, 3 red, 7 green; 4 blue, 1 red, 2 green; 5 blue, 3 green, 3 red
|
||||||
|
Game 18: 2 blue, 2 red, 1 green; 4 blue, 2 red, 7 green; 10 blue, 4 red, 3 green; 5 blue, 3 red, 2 green; 4 green, 3 red, 4 blue; 3 green, 5 red, 5 blue
|
||||||
|
Game 19: 2 red, 1 green, 1 blue; 8 red, 8 blue, 10 green; 16 green, 5 blue, 2 red; 4 red, 9 green
|
||||||
|
Game 20: 12 red, 1 blue, 1 green; 4 blue, 2 green, 2 red; 3 blue; 5 red, 8 green; 14 red, 4 blue, 6 green
|
||||||
|
Game 21: 9 red, 7 green, 1 blue; 5 green, 17 red, 11 blue; 14 red, 7 blue, 10 green; 7 green, 7 red, 10 blue; 6 blue, 6 green, 17 red; 16 red, 13 green, 7 blue
|
||||||
|
Game 22: 4 blue, 1 red; 1 green, 8 blue; 1 green; 6 blue, 1 red
|
||||||
|
Game 23: 13 red, 7 blue, 1 green; 4 green, 2 blue, 7 red; 4 green, 10 blue, 12 red
|
||||||
|
Game 24: 9 green, 10 blue; 2 blue, 4 green, 4 red; 9 green, 1 red, 9 blue; 4 green, 5 red, 12 blue
|
||||||
|
Game 25: 4 red, 1 green; 10 green, 6 red, 4 blue; 4 red, 1 blue, 7 green; 10 green, 3 red, 7 blue
|
||||||
|
Game 26: 8 red, 1 green, 2 blue; 5 green, 5 red; 6 green, 19 red; 11 red, 2 blue, 8 green; 13 red, 2 blue, 5 green; 15 red, 2 blue, 10 green
|
||||||
|
Game 27: 17 blue, 1 green; 2 red, 12 blue, 11 green; 16 green, 16 blue; 18 green, 4 blue; 10 blue, 1 red, 8 green
|
||||||
|
Game 28: 5 red, 1 green, 1 blue; 3 blue, 8 green, 4 red; 6 green, 2 red, 2 blue
|
||||||
|
Game 29: 3 green, 12 red, 11 blue; 2 green, 15 red, 8 blue; 13 red, 4 green; 17 red, 9 blue, 5 green
|
||||||
|
Game 30: 10 green; 4 blue, 1 green; 2 blue, 2 red, 7 green; 5 green, 4 blue, 1 red; 4 red, 10 green, 1 blue
|
||||||
|
Game 31: 15 blue, 2 red; 17 blue, 2 green; 19 blue, 6 red
|
||||||
|
Game 32: 1 green, 7 red; 8 red, 1 blue; 5 red, 1 blue, 11 green; 3 blue, 17 red
|
||||||
|
Game 33: 11 red, 9 green, 1 blue; 3 green, 8 blue; 10 red, 4 green, 8 blue; 6 red, 9 blue, 17 green; 15 green, 10 red, 4 blue; 1 red, 2 blue, 7 green
|
||||||
|
Game 34: 13 red, 6 green; 6 red, 14 green, 2 blue; 3 red, 19 green; 9 green, 9 red
|
||||||
|
Game 35: 7 green, 3 red; 12 green, 7 blue; 13 green, 7 red, 6 blue; 3 blue, 12 red
|
||||||
|
Game 36: 6 blue, 11 green, 14 red; 3 blue, 12 green, 4 red; 18 red, 1 blue; 7 red, 9 green, 6 blue
|
||||||
|
Game 37: 3 red, 16 blue, 6 green; 2 green, 7 blue; 8 blue, 3 red
|
||||||
|
Game 38: 16 blue, 3 green, 14 red; 8 red, 15 blue; 17 red, 15 blue, 4 green; 1 green, 11 blue, 17 red; 3 green, 10 blue, 17 red
|
||||||
|
Game 39: 1 green, 2 red, 5 blue; 12 blue, 12 green; 3 blue, 1 red
|
||||||
|
Game 40: 1 red, 2 blue, 1 green; 7 green, 1 red, 6 blue; 8 blue, 1 red, 6 green; 12 blue, 1 red, 3 green; 4 green, 8 blue
|
||||||
|
Game 41: 2 red, 2 blue, 5 green; 5 red, 8 blue; 4 green, 4 blue; 1 red, 11 blue
|
||||||
|
Game 42: 1 red, 3 green, 13 blue; 13 blue, 7 green; 13 green; 1 red, 3 blue, 4 green; 13 blue, 7 green
|
||||||
|
Game 43: 3 red, 4 green; 7 red, 11 blue, 3 green; 3 green, 12 red, 7 blue; 9 blue, 5 green
|
||||||
|
Game 44: 4 blue, 9 red, 2 green; 10 blue, 5 red, 2 green; 9 red, 9 blue, 1 green; 8 blue, 2 green, 14 red; 3 blue, 3 green, 6 red; 4 blue, 3 green, 14 red
|
||||||
|
Game 45: 1 red, 2 green, 2 blue; 2 green, 1 red; 1 green, 2 blue; 1 green, 1 red, 2 blue; 2 red, 2 blue, 1 green
|
||||||
|
Game 46: 1 green, 3 red, 3 blue; 6 green, 2 blue, 4 red; 1 green, 3 blue, 1 red; 3 green, 1 blue, 5 red; 6 green; 1 red, 1 green, 2 blue
|
||||||
|
Game 47: 18 green, 1 red, 7 blue; 6 blue, 19 green, 1 red; 5 blue, 7 green, 1 red; 1 red, 5 blue, 16 green; 15 green, 3 blue
|
||||||
|
Game 48: 4 green, 8 blue, 8 red; 13 green, 5 red, 12 blue; 9 red, 6 blue, 10 green; 18 green, 3 blue, 4 red; 2 blue, 9 red, 8 green
|
||||||
|
Game 49: 9 blue, 5 red, 9 green; 5 blue, 11 green, 5 red; 12 green, 6 blue
|
||||||
|
Game 50: 13 red, 8 green, 3 blue; 2 red, 11 green, 3 blue; 16 red, 7 green; 3 blue, 11 green, 15 red; 10 red, 2 blue, 5 green; 7 green, 2 blue, 4 red
|
||||||
|
Game 51: 2 red, 1 green, 3 blue; 2 green, 11 red, 17 blue; 2 red, 3 green, 6 blue; 4 red, 3 green, 6 blue; 13 red, 12 blue
|
||||||
|
Game 52: 1 blue, 5 green; 20 green, 6 blue; 9 blue, 6 green; 11 green, 1 red; 1 green, 1 red, 1 blue
|
||||||
|
Game 53: 8 red, 6 blue; 6 blue, 6 red, 2 green; 5 blue, 2 green, 3 red; 3 green, 3 blue; 4 green, 5 red, 1 blue
|
||||||
|
Game 54: 4 blue, 1 red, 3 green; 4 green, 10 blue, 9 red; 7 red, 3 blue, 3 green; 9 green, 9 red, 1 blue; 9 blue, 6 red, 7 green; 6 blue, 7 green, 9 red
|
||||||
|
Game 55: 15 red, 1 blue, 6 green; 11 blue, 3 red; 9 blue, 3 red, 1 green
|
||||||
|
Game 56: 8 green, 8 red, 9 blue; 8 red, 8 green, 1 blue; 7 red, 10 green, 4 blue; 10 blue, 2 green, 9 red
|
||||||
|
Game 57: 10 red, 3 green, 2 blue; 1 red, 4 green; 7 red, 1 green, 3 blue; 12 red, 4 blue; 14 red, 5 green, 4 blue
|
||||||
|
Game 58: 8 green, 3 blue, 7 red; 7 red, 14 blue, 5 green; 3 green, 7 red; 16 blue, 15 green; 1 red, 10 blue
|
||||||
|
Game 59: 3 red, 13 green, 2 blue; 10 blue, 3 green, 6 red; 3 green, 2 blue; 7 green, 2 blue, 7 red; 17 green, 6 blue, 15 red
|
||||||
|
Game 60: 2 blue, 2 red, 6 green; 11 green, 1 blue, 2 red; 1 blue, 9 green; 1 red, 4 green, 2 blue; 1 red, 2 blue, 10 green
|
||||||
|
Game 61: 3 red, 12 blue, 1 green; 3 red, 1 green, 18 blue; 5 blue, 2 red
|
||||||
|
Game 62: 4 red, 3 blue, 8 green; 2 blue, 8 red, 9 green; 8 blue, 15 green, 1 red
|
||||||
|
Game 63: 14 green, 2 red, 1 blue; 7 green, 11 blue, 1 red; 7 blue, 3 red; 4 green, 10 blue, 3 red
|
||||||
|
Game 64: 8 blue, 18 green, 2 red; 3 red, 17 green; 7 green, 1 red, 12 blue; 15 green, 2 red, 4 blue; 7 green, 8 red, 13 blue
|
||||||
|
Game 65: 6 blue, 5 green, 2 red; 1 red, 4 green; 5 green, 1 blue; 6 blue, 3 red, 2 green; 4 blue, 5 green
|
||||||
|
Game 66: 11 red, 9 blue, 4 green; 8 red, 8 blue; 9 red, 7 blue; 1 blue, 12 green, 4 red; 2 red, 11 blue, 10 green
|
||||||
|
Game 67: 1 red, 4 blue, 1 green; 7 red, 1 blue; 3 green, 4 blue, 6 red; 6 green, 3 blue, 14 red; 11 red, 1 blue, 1 green; 4 green, 8 red
|
||||||
|
Game 68: 3 red, 1 green, 2 blue; 1 red, 9 blue; 2 red, 1 green
|
||||||
|
Game 69: 3 green, 2 blue, 2 red; 1 red, 6 green; 13 red, 2 blue, 4 green; 4 blue, 13 red, 6 green; 12 red, 2 blue
|
||||||
|
Game 70: 15 blue, 2 green, 7 red; 3 red, 14 blue; 6 blue, 1 green; 1 red, 2 green, 4 blue; 2 green, 13 red; 12 blue, 3 red
|
||||||
|
Game 71: 7 red, 3 blue; 1 red, 4 blue; 2 red, 5 green, 1 blue; 6 blue, 8 red, 1 green; 3 green, 7 blue, 8 red
|
||||||
|
Game 72: 7 green; 4 green, 2 red, 8 blue; 1 blue, 5 green
|
||||||
|
Game 73: 5 red, 5 green, 2 blue; 8 red, 1 blue, 8 green; 1 red, 3 blue, 7 green
|
||||||
|
Game 74: 17 green, 9 blue, 4 red; 20 green, 2 red, 7 blue; 7 blue, 2 green, 4 red; 2 blue, 5 red, 20 green; 1 blue, 1 red, 12 green; 19 green, 9 blue, 3 red
|
||||||
|
Game 75: 1 red, 8 green, 9 blue; 7 blue, 3 green, 1 red; 2 green, 1 red, 9 blue; 5 blue, 1 red, 8 green; 2 green, 1 red, 11 blue; 5 green, 1 red
|
||||||
|
Game 76: 3 blue, 16 green, 2 red; 10 green, 3 blue, 1 red; 6 blue, 14 red, 13 green; 7 red, 2 green, 13 blue
|
||||||
|
Game 77: 7 red, 14 green; 1 blue, 1 red; 4 red, 1 green; 7 green, 11 red
|
||||||
|
Game 78: 1 red, 19 green; 10 green, 14 red, 1 blue; 3 green, 3 blue, 11 red; 7 blue, 1 green; 15 red, 3 green, 4 blue
|
||||||
|
Game 79: 7 red, 7 green, 6 blue; 3 red, 7 green, 5 blue; 7 red, 8 green, 12 blue
|
||||||
|
Game 80: 15 red, 6 blue; 1 red, 5 green, 2 blue; 1 green, 3 blue
|
||||||
|
Game 81: 3 red, 7 blue, 7 green; 7 green, 2 blue, 4 red; 3 green, 5 blue; 9 blue, 3 red, 6 green; 6 green, 1 red, 3 blue; 8 blue, 2 green, 1 red
|
||||||
|
Game 82: 5 red, 13 green; 3 blue, 13 green; 6 blue, 4 red, 10 green; 5 red, 1 green, 4 blue; 1 blue, 8 red; 4 red, 5 green
|
||||||
|
Game 83: 17 red, 1 blue, 2 green; 3 green, 3 red, 2 blue; 1 red, 5 blue, 10 green; 4 blue, 9 red, 11 green
|
||||||
|
Game 84: 13 green, 14 red, 12 blue; 14 blue, 2 red, 1 green; 4 blue, 8 red
|
||||||
|
Game 85: 3 red, 1 blue; 6 red, 3 blue, 2 green; 5 green, 3 blue, 3 red; 3 green, 5 blue, 1 red; 1 blue, 12 red, 2 green
|
||||||
|
Game 86: 16 blue, 17 green, 7 red; 14 blue, 13 green; 18 blue, 8 green
|
||||||
|
Game 87: 1 blue, 1 red; 4 blue, 1 green, 4 red; 1 green, 16 red; 1 green, 12 red, 1 blue
|
||||||
|
Game 88: 1 red, 6 green; 3 red, 2 blue, 19 green; 11 green, 2 red; 5 blue, 5 green; 5 blue, 9 green, 1 red; 2 blue, 2 red, 4 green
|
||||||
|
Game 89: 4 green, 11 red; 8 blue, 14 red; 14 blue, 8 green, 9 red; 14 green, 15 red, 10 blue
|
||||||
|
Game 90: 8 green, 2 red, 1 blue; 11 green, 4 blue, 2 red; 7 green, 2 blue; 13 green, 1 red
|
||||||
|
Game 91: 1 blue, 3 green; 1 blue; 4 green, 1 blue, 1 red; 1 blue, 2 red; 1 green, 2 red; 2 red, 5 green, 2 blue
|
||||||
|
Game 92: 16 red, 4 green, 5 blue; 9 blue, 13 green, 5 red; 13 red, 11 green, 7 blue; 11 red, 8 green, 2 blue
|
||||||
|
Game 93: 4 blue, 3 red, 3 green; 4 blue, 2 red, 1 green; 1 green, 2 red, 2 blue; 1 green, 2 red, 2 blue; 4 green, 1 blue
|
||||||
|
Game 94: 8 blue, 11 red, 7 green; 8 red, 6 green; 15 blue, 11 green, 2 red; 9 green, 6 red; 16 blue, 5 red, 7 green
|
||||||
|
Game 95: 13 blue, 1 red, 10 green; 11 green, 9 blue; 6 blue
|
||||||
|
Game 96: 1 green, 6 red; 1 red; 12 red, 1 green; 6 red, 1 blue
|
||||||
|
Game 97: 1 red, 9 blue, 8 green; 2 green, 6 blue, 1 red; 6 green, 1 blue
|
||||||
|
Game 98: 9 blue, 7 green, 8 red; 6 red, 11 blue, 4 green; 11 green, 9 blue, 15 red; 11 red, 6 blue, 16 green
|
||||||
|
Game 99: 2 blue, 1 red, 9 green; 8 red, 1 blue, 1 green; 2 red, 7 green, 8 blue; 1 red, 5 green, 7 blue; 7 blue, 10 green, 9 red; 1 green, 1 blue, 1 red
|
||||||
|
Game 100: 3 blue, 6 red, 9 green; 4 red, 3 green; 4 green, 16 red, 1 blue; 14 blue, 1 green
|
@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
MAX_RED = 12
|
||||||
|
MAX_GREEN =13
|
||||||
|
MAX_BLUE = 14
|
||||||
|
|
||||||
|
result = 0
|
||||||
|
|
||||||
|
for line in sys.stdin.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
game_no, reveals = line.split(': ')
|
||||||
|
game_no = int(game_no.split()[1])
|
||||||
|
print(game_no, reveals)
|
||||||
|
is_game_valid = True
|
||||||
|
for reveal in reveals.split('; '):
|
||||||
|
for color in reveal.split(', '):
|
||||||
|
amount, color = color.split()
|
||||||
|
if color == 'red' and int(amount) > MAX_RED:
|
||||||
|
is_game_valid = False
|
||||||
|
break
|
||||||
|
if color == 'green' and int(amount) > MAX_GREEN:
|
||||||
|
is_game_valid = False
|
||||||
|
break
|
||||||
|
if color == 'blue' and int(amount) > MAX_BLUE:
|
||||||
|
is_game_valid = False
|
||||||
|
break
|
||||||
|
if not is_game_valid:
|
||||||
|
break
|
||||||
|
|
||||||
|
if is_game_valid:
|
||||||
|
result += game_no
|
||||||
|
|
||||||
|
print(result)
|
@ -0,0 +1,36 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
result = 0
|
||||||
|
|
||||||
|
for line in sys.stdin.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
game_no, reveals = line.split(': ')
|
||||||
|
game_no = int(game_no.split()[1])
|
||||||
|
|
||||||
|
is_game_valid = True
|
||||||
|
|
||||||
|
min_red = 0
|
||||||
|
min_green = 0
|
||||||
|
min_blue = 0
|
||||||
|
|
||||||
|
for reveal in reveals.split('; '):
|
||||||
|
for color in reveal.split(', '):
|
||||||
|
amount, color = color.split()
|
||||||
|
amount = int(amount)
|
||||||
|
if color == 'red' and amount > min_red:
|
||||||
|
min_red = amount
|
||||||
|
if color == 'green' and amount > min_green:
|
||||||
|
min_green = amount
|
||||||
|
if color == 'blue' and amount > min_blue:
|
||||||
|
min_blue = amount
|
||||||
|
|
||||||
|
power = min_red * min_green * min_blue
|
||||||
|
|
||||||
|
print(f'{game_no}: {min_red=} {min_blue=} {min_green=} {power=}')
|
||||||
|
result += power
|
||||||
|
|
||||||
|
print(result)
|
||||||
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
|||||||
|
https://adventofcode.com/2023/day/3
|
||||||
|
|
||||||
|
## \--- Day 3: Gear Ratios ---
|
||||||
|
|
||||||
|
You and the Elf eventually reach a [gondola
|
||||||
|
lift](https://en.wikipedia.org/wiki/Gondola_lift) station; he says the gondola
|
||||||
|
lift will take you up to the _water source_ , but this is as far as he can
|
||||||
|
bring you. You go inside.
|
||||||
|
|
||||||
|
It doesn't take long to find the gondolas, but there seems to be a problem:
|
||||||
|
they're not moving.
|
||||||
|
|
||||||
|
"Aaah!"
|
||||||
|
|
||||||
|
You turn around to see a slightly-greasy Elf with a wrench and a look of
|
||||||
|
surprise. "Sorry, I wasn't expecting anyone! The gondola lift isn't working
|
||||||
|
right now; it'll still be a while before I can fix it." You offer to help.
|
||||||
|
|
||||||
|
The engineer explains that an engine part seems to be missing from the engine,
|
||||||
|
but nobody can figure out which one. If you can _add up all the part numbers_
|
||||||
|
in the engine schematic, it should be easy to work out which part is missing.
|
||||||
|
|
||||||
|
The engine schematic (your puzzle input) consists of a visual representation
|
||||||
|
of the engine. There are lots of numbers and symbols you don't really
|
||||||
|
understand, but apparently _any number adjacent to a symbol_ , even
|
||||||
|
diagonally, is a "part number" and should be included in your sum. (Periods
|
||||||
|
(`.`) do not count as a symbol.)
|
||||||
|
|
||||||
|
Here is an example engine schematic:
|
||||||
|
|
||||||
|
[code]
|
||||||
|
|
||||||
|
467..114..
|
||||||
|
...*......
|
||||||
|
..35..633.
|
||||||
|
......#...
|
||||||
|
617*......
|
||||||
|
.....+.58.
|
||||||
|
..592.....
|
||||||
|
......755.
|
||||||
|
...$.*....
|
||||||
|
.664.598..
|
||||||
|
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
In this schematic, two numbers are _not_ part numbers because they are not
|
||||||
|
adjacent to a symbol: `114` (top right) and `58` (middle right). Every other
|
||||||
|
number is adjacent to a symbol and so _is_ a part number; their sum is
|
||||||
|
`_4361_`.
|
||||||
|
|
||||||
|
Of course, the actual engine schematic is much larger. _What is the sum of all
|
||||||
|
of the part numbers in the engine schematic?_
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
467..114..
|
||||||
|
...*......
|
||||||
|
..35..633.
|
||||||
|
......#...
|
||||||
|
617*......
|
||||||
|
.....+.58.
|
||||||
|
..592.....
|
||||||
|
......755.
|
||||||
|
...$.*....
|
||||||
|
.664.598..
|
@ -0,0 +1,140 @@
|
|||||||
|
....................................18..........889.270.....748.280...997.................617..............622........763............476....
|
||||||
|
...529......434.....191..489...717...@.....................&....................939*7.....*....................606............760....*......
|
||||||
|
....*...473....*221................$........182......812........493.84....793..........794.......589..407..41...*.....................68....
|
||||||
|
..380.................553..559..105.....749.............*..........*.........*.............-968....@.....*..*....908..603...................
|
||||||
|
.........................................#...600.........441..#833...490....366.........................225..488........&...456.........224.
|
||||||
|
........288=......896*469..........831..........*....................*..............#...@.146.......*.............790#......%...194....@....
|
||||||
|
..730.........................250+......./......359....=.462..............138...#.49..713.-........342...604*676.........=.....*.........418
|
||||||
|
....*....907.......526................274...........346.....*.876..........-..725.............376......................541...600.....366*...
|
||||||
|
.....747...*..........*......56$...10........422........-.86.....*.......................728./............*.................................
|
||||||
|
.........486.........349............*..........=......696....$.............850&......906*......831.....539.195.........202..................
|
||||||
|
..............592.............................................592....+.847.......676......365..=......................*........469.%........
|
||||||
|
.542............*...............385....60.................329......657..@......=..*....&...........355.........=....52.........*....352.....
|
||||||
|
.............994......937...................45.....48........*..............835...791..654....................75.............523............
|
||||||
|
...................&..............269.486.....+...*......&....954.........#........................246&...&..............203......693.......
|
||||||
|
.....262..........920...248.454......*...........289...822.........530...569..............................256.......929....*......*.........
|
||||||
|
........%............../.........................................../..............+..57.@............616=...........*...462...198.757.......
|
||||||
|
...............65........=.........764*.....$581.727........62.......4.....796..280......444.807...............174@.20................512...
|
||||||
|
.........877....*...687..187.522.......853..........*321.....*........*345...........513.....=.......849..........................@....*....
|
||||||
|
.........*...635......*........=..............................380...........77...44*..*................#......*......484.....65.886.........
|
||||||
|
.....153.........@.&.....320........96..619....510......221.............139..*........957..977......20.....232.20......&.....*..............
|
||||||
|
......*...397*.610..479...*....=....%.....*.......*.............839.......*................*............*.................144........#554...
|
||||||
|
..510...................927.....384........714...286....................799.....733.........832......815.187.....*....470...................
|
||||||
|
........892..................................................645.427.............%......562...................133.442....*906...............
|
||||||
|
.........=..........803............577.......%.....447..185.........*957.637*97..............132...............................83.258@..$...
|
||||||
|
...........=55......+....+...435.......930...143.............475................./..............#......................=..675...%......709..
|
||||||
|
777....................841..*...........*......................*........*.........859...../...............640%..955..903.*..................
|
||||||
|
..............639/...........803.829.....877........#.........716....873....387.........857..837.................*.......390................
|
||||||
|
.................................*...............994......................%....*.............&.......749.........718.174.....138..697...463.
|
||||||
|
.....................697...873#.435......*141...........914*656....@......414..981.....541.......%....*...+.#.........*......&....+.........
|
||||||
|
.....................*................544.......524.............446.......................+.397..486....603.463......497....................
|
||||||
|
.........161........412....273..218..............*..80............................708.......=....................899........+......-........
|
||||||
|
............*..435*.........-..$.........666..401.....*897.214..472..499............*...955......................@...867....607.491..43@....
|
||||||
|
666%.851..653......44...............152....................*....@.....*..........294.....*...313...237....580...............................
|
||||||
|
............................989....*.....954.....69.....488../.......90.495*..........697....*.......*.....*..686.......=.......594*981.....
|
||||||
|
.....104..#...................=.....773...$../.....*396.....959.............272...........433........889.821.....*759.469...................
|
||||||
|
.......*..865.318.@812........................267...............969.............................758........................913........646...
|
||||||
|
......132......*.........*699......+...............+.......126......468.....651............424........270.765.....53...965.*...19...........
|
||||||
|
..............725.....449.......337..187........862.............553*........*....=282.28....*........*....*........*.....%.779..&....218*...
|
||||||
|
.....744...36.....203.......452.......%..846........&......................................811..501..342...891.....776...................395
|
||||||
|
.................$.....567&...@..689.......%.......619..392.........847#..#.....236*833............*.........................408............
|
||||||
|
............./.....732............*........................*..............568................375..561..-270..111....=..565..................
|
||||||
|
...........801............221....336...493....263..81*.....981...........................449*....................809......*239...........686
|
||||||
|
...................+.........*87......*..........#....510...........20*684.../..387.....................................*...........132.....
|
||||||
|
.......674......&..364...........734.141.854*290...........................572.*......878...929.141.#.......526...919.646..*..........*.....
|
||||||
|
..............980...............*...............................500...229......876....*..............220.....*.....*........809......522....
|
||||||
|
394....374......................194......660.....172..............&.....*...........774...................367......452..952.................
|
||||||
|
.......*...................918/............*.....*.......220........776.542..............843..857....560....................................
|
||||||
|
........728.......@951.668.........651......589.857.........../.....*.........354....509.......@........*.................+.....151.........
|
||||||
|
......-......262.........#.....*95...................878./...563.642.............#.......................586........638..933....=...........
|
||||||
|
504.454.......*............540..........524..........*...531...........942...................632@.830.........302..-................%.......
|
||||||
|
.........498..357..........*....&..........%.......340.........925.......*....623.707.479............*36....%........+.....659*149.401.117..
|
||||||
|
34..................608.....156.747...602@...............................748..*....*..$............*.........565.....93................*....
|
||||||
|
........426.................................60.938...........................615.328.....818....143.118..................*.@...........916..
|
||||||
|
...............547..............25*32.......*..*.......64..-813..........405.........802...*............188............246.236..............
|
||||||
|
652................*426...................74.....822...*.................*...533....*....764..............*....................%............
|
||||||
|
....920.64......437......598....738..#..............+..44...625...*....879......*..879.......668.#.......509...385..123....677..553.62......
|
||||||
|
....*....+.783..........*..........*.552...534...............*.....312........=.........@...-....819............#..-..........*.............
|
||||||
|
....779.......&....21..582......264.........*.............564...............561........811...........................943....68..$...........
|
||||||
|
.....................&.....................915.472*918.................848.......943.........803....................*..........386..........
|
||||||
|
...........................62........668..........................*801.*.........*...............878.......212....613.......................
|
||||||
|
.......208.......302..313*...*........*...........&.717........237.....11.........551.569.................*...............717...............
|
||||||
|
...742*......886*.........15.402....806...84...527.....*....=................650......*.....56.....401...276......964......-.....@..........
|
||||||
|
..........................................*.........411...277.722.337.........*.....915.252*........*................+..........356....553..
|
||||||
|
.......*...2.........406...............922.....=605............*............403......................316..........84.......%..........=.....
|
||||||
|
.......385.+....%893........200............150...........420.548.......+111...........70............................*675.895................
|
||||||
|
...........................+.......198-...@.........532...........23..........349#....*......#...............................920.........844
|
||||||
|
.....#.....387/.............................31..638..*....580.....#...........................397..720..........161...+.......*..628....*...
|
||||||
|
......816..............669....36..#393..848..........884.+...........&676.....876*341...565%.......*..........*....#...914...356..-..210....
|
||||||
|
...............646........&..$.........*...................542....................................370......686.567..........................
|
||||||
|
............../....94................414......18.............................861....*.....878..........24@.............875=.693*320..864.989
|
||||||
|
...................*.........665..............*...595..........201......738..+...784..187....*237..../..............................*.......
|
||||||
|
......236-.......126.....641*..../............486.*.....638.............................*.%.......242....*153....+.........63.837.723.41....
|
||||||
|
...........35....................114...............661....-....534.........626*......796..28..........579......367..78.929...*..............
|
||||||
|
......108.........271*144.........................................*............5.....................................*.*.......669.533..704.
|
||||||
|
.........*635................#..@947.......290.....544.............707...................465..632.....771...181........471.380*......*......
|
||||||
|
.....114..........89$.....699...........=....*........=.....416...........................&.....$......$..........365...............131.....
|
||||||
|
.......-.............................410....64......*.........*.........&....684.....15.....317...340*..............*.......................
|
||||||
|
.........26.609........152........................94.498.....26......671.......*.221*..........*......718...824.....56...........915........
|
||||||
|
..218..............707*.......786.....839................790.....192.........181......836....287..............%.......................-.....
|
||||||
|
......937.722...............%.........*...378$...........*.........@.449..............%............226...........&...........428.......341..
|
||||||
|
.795....*...&..185..405.....60.121....159.......275...996............*....981.....710........363...%...528....-.888....*641...*....880......
|
||||||
|
...-..806.......*.....*......................@.....#......545..467...289..*.........*....681..........*.....86......326.......664.&.........
|
||||||
|
.............221.....142...860+....933..653..291......52&../..*............300.%...811...*..................................................
|
||||||
|
......................................-....*.....861.........149...............673......762........./284..588..................%.....316....
|
||||||
|
..373......290..............................665.....*................&.............&552.....51.............=.......105.......162.......*....
|
||||||
|
...-........*.....388........%...772....................=...57....163..932..41...............*...693.116*......#.....*..............434.....
|
||||||
|
......*489...248..*........395...=.....................676..#..........*...................835...........570.199..678.......................
|
||||||
|
780...............713................952...479...379..................83.554.........919.......486..980...............984.$468.....720......
|
||||||
|
..........66..-.....................*.......*....*...........................380%.....$.........*..........899*..118..............*.........
|
||||||
|
............*..694........382....793.........668.92.....747.......49.....&..........#.....284...462....303........*....518......50.....798..
|
||||||
|
...*146..642.......@880...*............79=.............*.....93....&...885...785..780.......*..........=...-.....663..................*.....
|
||||||
|
533...........996.........352..................619%...200......+......................142....408....=....634............379*491.588@..183...
|
||||||
|
........$127........970...............902..........................943.649............$..........909.........619............................
|
||||||
|
................-..*....640............*.......-459..#.....446......&.....*.934.....#....313............/....*........509...473..901....132.
|
||||||
|
..........*..415..805..*.....786.....12...............863...*...........674....$...296.....&...474......281...326.......&....*......$.......
|
||||||
|
........909...........136.......@.........645................961................................/...250...............$................*554.
|
||||||
|
...*.........589....................253..../...166.....&429.........96......568*684.%186...............*958........678..............466.....
|
||||||
|
.759............*96..........658.......*......*...............105...-....................428.............................=...73.............
|
||||||
|
......54*...................+......168.592..536.=................*8...671........753+.......*.................74........564....*............
|
||||||
|
.304.....728..764................=...*...........804.575....266........*.....................94......27.316....=.-644.*.......209...485.....
|
||||||
|
.....997.......*.........#....792...855.................#......*169...496./615........683.......225.*..................474............$.395.
|
||||||
|
............573....206.477...................*158..........702....................298../......*...=..100....................714.........*...
|
||||||
|
448...............*..................769...27........691..$.......178....675......*........980.28...............*727...%.....@...201.545....
|
||||||
|
............223...561..........261.....*.............*................+...........610.250....................496......408..........*........
|
||||||
|
....@775.....*............&.....@....195..........303..+.............141..865..............629..+....659...................855*....958......
|
||||||
|
...........407........92...22................493......605..................@..........477...*....160...................743.....163..........
|
||||||
|
......................../......*......602@......=..+.......*....668$..245................*...731..........69.....213.....*........./....%...
|
||||||
|
................213*........903.75..........64......945...221.........+.......740........739..........393*...301*......562...../...53...4...
|
||||||
|
...164&.....145.....580.......................*................425........900......828*............................*........536.............
|
||||||
|
...............*.....................91....185..................../....................85.................414...890.204.....................
|
||||||
|
....772............422..*.351...218..................584................263...849...............*...639*.....*..............................
|
||||||
|
.......*307...897...*..28.*........*.*49.......300....=../72...........%......*.....544......974..@.....214...55.......347.............914..
|
||||||
|
901............*..67......840...343.........................................447....*...............400...................*..................
|
||||||
|
.......684..498.........*......................544...347..+........493.............612..........59.........741..........593.........416*....
|
||||||
|
..........*........369.577........690...770....*......*..983.*160....#.................623*248.#......437..*........258.................275.
|
||||||
|
....+...603....+...*............./......*...913....609.................823........................62.%....83...........&....................
|
||||||
|
....538.....356..=..117......-.........556................................*..............920.......*...............746......................
|
||||||
|
................483.......197...................&....................231...210......92....*.....982..&......199....$........848.$.....$.....
|
||||||
|
...370..413.........$.............*............556........325...902@....$..........@...182..........933................*.....&...829.402....
|
||||||
|
......*..%...........524.131..134..163.....185...............*...............................756........282&.774......822...................
|
||||||
|
....340....373...*...............*...........*....649.20....289....799..549.939.....120..........61............*..345.......778...550.267...
|
||||||
|
............&...699......&319..170...492....61.....*.......................*.....+.................*.........345.....@........*...+.........
|
||||||
|
534.............................................144..849.......174......*........219.....$......140...476..................970..............
|
||||||
|
.../....681............444.....819$...................*..=305../.....413.95...............589.................229...235................644..
|
||||||
|
...........-.....28.......*403................&....548.............&...........17..........................33..........+........962.........
|
||||||
|
373..........500....%429.....................291........*....881.296.....163*....*..............796...585....&.............802..*.......138.
|
||||||
|
................*..................983&................809.....*.............417.999....$.......*...............633.........*...322....*....
|
||||||
|
......907..$921.............665...........731...............903.........................638..662..............-..........495.........130.9..
|
||||||
|
.........*......168............&..353.....-..........639.........#...........349......................660....914...570......................
|
||||||
|
...%......695..*....679...........=..........$...958.+.....494..369..........*...........................*44........*.........964......548..
|
||||||
|
...826.........268..*.....675..............136....-...................650.964....728.823.403..................842.983..........*......*.....
|
||||||
|
...................328................................519.....210.......................*....143.....*46....../.................241..55.....
|
||||||
|
.......855$...199.......526.....849...764*294..........#.....*.....280..........261.885.........#.434...................610.................
|
||||||
|
...............=...............+...................498.......936......*..831.......*.......&...........462.939+..439.......*845.....443.....
|
||||||
|
.....@360.842......986%.902-.....21.307....234*......*...324.......505....*.............315..............*.............................*....
|
||||||
|
..........*....................*.*....*..............42..*................474...../919................50.674..713................./..27.....
|
||||||
|
........249....291...........448.622..228.......308.........189...............629........-...................*............594..127......782.
|
||||||
|
..................*173..817.....................*.......91.....*..#................*649...492...400.........17...878.....*..........950.....
|
||||||
|
...32.674......-........%.....402/...........610..%.....*.....549..853...........96.................=.............*....779.......@..........
|
||||||
|
.............885.................................600.456...........................................679.............16.........392.....841...
|
@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Part 1
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import re
|
||||||
|
|
||||||
|
ENGINE_MAP = []
|
||||||
|
|
||||||
|
for line in sys.stdin.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
ENGINE_MAP.append(line)
|
||||||
|
# print(line)
|
||||||
|
|
||||||
|
print()
|
||||||
|
# print(ENGINE_MAP)
|
||||||
|
|
||||||
|
number_matches = set()
|
||||||
|
|
||||||
|
for x, line in enumerate(ENGINE_MAP):
|
||||||
|
for y, char in enumerate(line):
|
||||||
|
if re.match(r"[^0-9\.]", char):
|
||||||
|
# print(f"{x},{y}: {char}")
|
||||||
|
for d_x in [-1, 0, 1]:
|
||||||
|
for d_y in [-1, 0, 1]:
|
||||||
|
coord_x = x + d_x
|
||||||
|
coord_y = y + d_y
|
||||||
|
if coord_x < 0 or coord_x > len(ENGINE_MAP) - 1:
|
||||||
|
continue
|
||||||
|
if coord_y < 0 or coord_y > len(ENGINE_MAP[coord_x]) - 1:
|
||||||
|
continue
|
||||||
|
if re.match(r"[0-9]", ENGINE_MAP[coord_x][coord_y]):
|
||||||
|
while coord_y > 0 and re.match(
|
||||||
|
r"[0-9]", ENGINE_MAP[coord_x][coord_y - 1]
|
||||||
|
):
|
||||||
|
coord_y -= 1
|
||||||
|
number_matches.add((coord_x, coord_y))
|
||||||
|
|
||||||
|
# print()
|
||||||
|
# print(number_matches)
|
||||||
|
|
||||||
|
numbers = []
|
||||||
|
|
||||||
|
RESULT = 0
|
||||||
|
|
||||||
|
print()
|
||||||
|
for match in number_matches:
|
||||||
|
x, y = match
|
||||||
|
|
||||||
|
line = ENGINE_MAP[x]
|
||||||
|
number = line[y]
|
||||||
|
while y < len(line) - 1 and re.match(r"[0-9]", line[y + 1]):
|
||||||
|
y += 1
|
||||||
|
number += line[y]
|
||||||
|
number = int(number)
|
||||||
|
|
||||||
|
# print(f"{x},{y}: {number}")
|
||||||
|
RESULT += number
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(RESULT)
|
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Part 1
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import re
|
||||||
|
|
||||||
|
ENGINE_MAP = []
|
||||||
|
|
||||||
|
for line in sys.stdin.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
ENGINE_MAP.append(line)
|
||||||
|
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
def get_num(coordinates: tuple):
|
||||||
|
"""Get number from ENGINE_MAP"""
|
||||||
|
x, y = coordinates
|
||||||
|
line = ENGINE_MAP[x]
|
||||||
|
number = line[y]
|
||||||
|
while y < len(line) - 1 and re.match(r"[0-9]", line[y + 1]):
|
||||||
|
y += 1
|
||||||
|
number += line[y]
|
||||||
|
number = int(number)
|
||||||
|
return number
|
||||||
|
|
||||||
|
|
||||||
|
RESULT = 0
|
||||||
|
|
||||||
|
for x, line in enumerate(ENGINE_MAP):
|
||||||
|
for y, symbol in enumerate(line):
|
||||||
|
if symbol == "*":
|
||||||
|
symbol_numbers = set()
|
||||||
|
# print(f"{x},{y}: {symbol}")
|
||||||
|
for d_x in [-1, 0, 1]:
|
||||||
|
for d_y in [-1, 0, 1]:
|
||||||
|
coord_x = x + d_x
|
||||||
|
coord_y = y + d_y
|
||||||
|
if coord_x < 0 or coord_x > len(ENGINE_MAP) - 1:
|
||||||
|
continue
|
||||||
|
if coord_y < 0 or coord_y > len(ENGINE_MAP[coord_x]) - 1:
|
||||||
|
continue
|
||||||
|
if re.match(r"[0-9]", ENGINE_MAP[coord_x][coord_y]):
|
||||||
|
while coord_y > 0 and re.match(
|
||||||
|
r"[0-9]", ENGINE_MAP[coord_x][coord_y - 1]
|
||||||
|
):
|
||||||
|
coord_y -= 1
|
||||||
|
symbol_numbers.add((coord_x, coord_y))
|
||||||
|
if len(symbol_numbers) == 2:
|
||||||
|
num_1 = get_num(list(symbol_numbers)[0])
|
||||||
|
num_2 = get_num(list(symbol_numbers)[1])
|
||||||
|
gear_ratio = num_1 * num_2
|
||||||
|
print(f"Gear found at {x},{y}. {gear_ratio=}")
|
||||||
|
RESULT += gear_ratio
|
||||||
|
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(RESULT)
|
@ -0,0 +1,71 @@
|
|||||||
|
https://adventofcode.com/2023/day/4
|
||||||
|
|
||||||
|
## \--- Day 4: Scratchcards ---
|
||||||
|
|
||||||
|
The gondola takes you up. Strangely, though, the ground doesn't seem to be
|
||||||
|
coming with you; you're not climbing a mountain. As the circle of Snow Island
|
||||||
|
recedes below you, an entire new landmass suddenly appears above you! The
|
||||||
|
gondola carries you to the surface of the new island and lurches into the
|
||||||
|
station.
|
||||||
|
|
||||||
|
As you exit the gondola, the first thing you notice is that the air here is
|
||||||
|
much _warmer_ than it was on Snow Island. It's also quite _humid_. Is this
|
||||||
|
where the water source is?
|
||||||
|
|
||||||
|
The next thing you notice is an Elf sitting on the floor across the station in
|
||||||
|
what seems to be a pile of colorful square cards.
|
||||||
|
|
||||||
|
"Oh! Hello!" The Elf excitedly runs over to you. "How may I be of service?"
|
||||||
|
You ask about water sources.
|
||||||
|
|
||||||
|
"I'm not sure; I just operate the gondola lift. That does sound like something
|
||||||
|
we'd have, though - this is _Island Island_ , after all! I bet the _gardener_
|
||||||
|
would know. He's on a different island, though - er, the small kind surrounded
|
||||||
|
by water, not the floating kind. We really need to come up with a better
|
||||||
|
naming scheme. Tell you what: if you can help me with something quick, I'll
|
||||||
|
let you _borrow my boat_ and you can go visit the gardener. I got all these
|
||||||
|
[scratchcards](https://en.wikipedia.org/wiki/Scratchcard) as a gift, but I
|
||||||
|
can't figure out what I've won."
|
||||||
|
|
||||||
|
The Elf leads you over to the pile of colorful cards. There, you discover
|
||||||
|
dozens of scratchcards, all with their opaque covering already scratched off.
|
||||||
|
Picking one up, it looks like each card has two lists of numbers separated by
|
||||||
|
a vertical bar (`|`): a list of _winning numbers_ and then a list of _numbers
|
||||||
|
you have_. You organize the information into a table (your puzzle input).
|
||||||
|
|
||||||
|
As far as the Elf has been able to figure out, you have to figure out which of
|
||||||
|
the _numbers you have_ appear in the list of _winning numbers_. The first
|
||||||
|
match makes the card worth _one point_ and each match after the first
|
||||||
|
_doubles_ the point value of that card.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
[code]
|
||||||
|
|
||||||
|
Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
|
||||||
|
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
|
||||||
|
Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
|
||||||
|
Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
|
||||||
|
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
|
||||||
|
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
|
||||||
|
|
||||||
|
[/code]
|
||||||
|
|
||||||
|
In the above example, card 1 has five winning numbers (`41`, `48`, `83`, `86`,
|
||||||
|
and `17`) and eight numbers you have (`83`, `86`, `6`, `31`, `17`, `9`, `48`,
|
||||||
|
and `53`). Of the numbers you have, four of them (`48`, `83`, `17`, and `86`)
|
||||||
|
are winning numbers! That means card 1 is worth `_8_` points (1 for the first
|
||||||
|
match, then doubled three times for each of the three matches after the
|
||||||
|
first).
|
||||||
|
|
||||||
|
* Card 2 has two winning numbers (`32` and `61`), so it is worth `_2_` points.
|
||||||
|
* Card 3 has two winning numbers (`1` and `21`), so it is worth `_2_` points.
|
||||||
|
* Card 4 has one winning number (`84`), so it is worth `_1_` point.
|
||||||
|
* Card 5 has no winning numbers, so it is worth no points.
|
||||||
|
* Card 6 has no winning numbers, so it is worth no points.
|
||||||
|
|
||||||
|
So, in this example, the Elf's pile of scratchcards is worth `_13_` points.
|
||||||
|
|
||||||
|
Take a seat in the large pile of colorful cards. _How many points are they
|
||||||
|
worth in total?_
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
|
||||||
|
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
|
||||||
|
Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
|
||||||
|
Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
|
||||||
|
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
|
||||||
|
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
|
@ -0,0 +1,220 @@
|
|||||||
|
Card 1: 79 1 6 9 88 95 84 69 83 97 | 42 95 1 6 71 69 61 99 84 12 32 96 9 82 88 97 53 24 28 65 83 38 8 68 79
|
||||||
|
Card 2: 34 76 23 61 56 74 13 42 18 6 | 18 13 21 64 74 97 34 43 31 23 56 82 76 61 45 69 10 81 48 6 9 30 47 95 42
|
||||||
|
Card 3: 12 88 28 50 46 69 62 95 6 51 | 66 12 62 82 6 46 77 88 36 74 50 54 40 99 89 11 33 78 87 69 75 96 2 21 71
|
||||||
|
Card 4: 50 80 66 43 82 53 35 51 39 48 | 43 82 48 10 91 7 80 66 51 63 84 35 19 44 9 39 72 85 50 53 73 1 26 75 86
|
||||||
|
Card 5: 63 83 42 98 60 47 36 59 93 18 | 53 47 67 5 17 60 92 93 20 84 10 98 39 86 41 16 31 83 42 94 25 82 61 95 44
|
||||||
|
Card 6: 54 26 43 52 75 55 84 71 85 69 | 99 80 79 24 64 13 93 1 87 9 15 50 32 89 72 52 60 53 12 96 30 98 86 31 92
|
||||||
|
Card 7: 4 98 40 78 24 38 80 32 75 97 | 32 24 78 97 57 40 82 75 70 76 98 37 35 38 64 91 28 46 39 90 80 87 22 4 45
|
||||||
|
Card 8: 61 98 49 16 4 24 32 79 23 28 | 56 27 24 40 47 98 75 49 34 23 80 61 68 32 94 16 79 31 4 8 62 46 53 28 7
|
||||||
|
Card 9: 77 15 52 60 86 19 5 33 65 83 | 67 69 94 16 13 17 27 53 75 59 36 38 80 86 58 61 63 24 85 44 99 70 92 47 14
|
||||||
|
Card 10: 44 58 28 36 72 78 96 69 95 56 | 69 81 29 61 95 52 18 28 72 96 23 75 44 77 2 87 11 36 56 39 73 26 98 78 58
|
||||||
|
Card 11: 37 2 54 40 96 82 17 67 72 95 | 16 9 92 36 54 61 72 45 13 47 96 40 2 21 82 17 76 95 37 42 67 1 88 69 24
|
||||||
|
Card 12: 95 46 8 27 41 34 82 4 84 59 | 52 39 7 3 54 57 29 1 21 89 75 33 14 94 36 15 60 40 16 80 35 83 9 5 87
|
||||||
|
Card 13: 67 51 83 20 42 70 24 13 1 3 | 5 38 23 32 84 34 19 62 11 69 50 17 94 10 25 86 61 3 89 30 33 63 13 2 8
|
||||||
|
Card 14: 78 62 32 68 8 66 98 23 57 82 | 40 32 52 70 98 33 53 36 19 83 82 99 68 66 78 24 11 57 81 26 74 25 88 73 18
|
||||||
|
Card 15: 39 31 45 89 16 57 40 50 33 51 | 87 49 24 83 54 55 39 4 53 81 19 61 20 18 97 30 52 58 13 67 50 94 47 89 56
|
||||||
|
Card 16: 34 59 92 5 33 6 1 37 40 26 | 57 89 20 36 46 91 62 94 33 56 31 75 22 83 9 82 58 52 77 7 54 41 43 71 79
|
||||||
|
Card 17: 37 5 8 67 99 36 56 52 44 46 | 85 65 40 10 58 23 16 11 90 94 82 12 88 96 71 77 54 78 26 19 38 43 73 21 17
|
||||||
|
Card 18: 61 64 46 14 15 36 32 7 76 3 | 42 12 27 78 56 97 76 18 51 15 82 10 57 69 2 8 99 4 59 6 40 14 52 58 7
|
||||||
|
Card 19: 89 21 81 73 15 58 7 25 33 67 | 84 36 88 97 95 19 94 30 70 55 96 59 34 46 52 56 22 73 50 83 86 61 25 63 16
|
||||||
|
Card 20: 64 22 18 55 73 14 1 96 92 41 | 27 11 39 42 84 2 48 4 37 23 60 52 86 36 62 94 82 20 77 73 32 40 83 69 90
|
||||||
|
Card 21: 23 64 38 3 13 10 35 66 72 46 | 52 67 74 57 58 83 40 29 79 48 95 24 11 22 77 62 47 30 1 71 89 96 55 86 97
|
||||||
|
Card 22: 33 7 39 61 29 95 90 23 59 4 | 50 82 94 18 28 34 85 57 91 75 13 46 55 68 84 89 21 88 87 92 80 52 6 86 71
|
||||||
|
Card 23: 3 30 63 96 50 67 69 52 33 9 | 3 69 78 79 96 50 64 30 33 86 81 4 77 8 7 63 97 93 59 91 45 9 22 67 52
|
||||||
|
Card 24: 62 90 27 28 20 63 65 68 50 44 | 23 88 27 59 79 99 87 49 94 51 80 16 6 73 90 13 37 57 8 12 52 76 10 75 18
|
||||||
|
Card 25: 75 38 28 91 95 17 30 6 68 44 | 30 76 86 2 6 35 3 45 14 82 75 66 21 5 43 94 90 38 17 72 10 24 8 19 44
|
||||||
|
Card 26: 69 66 35 37 24 15 92 41 9 31 | 47 21 54 25 50 18 64 44 31 95 67 73 4 91 74 38 53 90 52 56 97 29 75 98 46
|
||||||
|
Card 27: 59 72 44 21 42 89 13 38 7 61 | 72 38 8 15 17 46 85 21 62 13 61 6 44 73 59 41 7 89 12 39 23 77 32 84 42
|
||||||
|
Card 28: 10 83 96 81 71 62 76 33 38 48 | 44 7 34 66 56 42 71 38 47 76 12 51 36 92 4 26 68 67 17 21 73 60 11 70 81
|
||||||
|
Card 29: 5 11 24 9 71 92 77 19 3 69 | 61 3 26 39 75 70 5 58 24 23 29 89 71 33 2 9 43 69 77 19 11 38 60 92 93
|
||||||
|
Card 30: 46 62 55 48 1 89 84 20 12 87 | 27 99 84 25 63 73 8 80 47 93 65 28 64 79 56 40 6 38 62 55 32 78 75 37 3
|
||||||
|
Card 31: 75 31 40 20 99 72 49 71 24 47 | 84 60 26 91 20 77 59 34 88 78 18 5 13 46 19 96 86 9 97 29 61 53 54 65 8
|
||||||
|
Card 32: 50 49 23 14 34 94 58 28 45 20 | 1 93 38 82 42 41 17 54 76 71 75 15 87 35 90 5 13 18 32 21 39 22 7 99 67
|
||||||
|
Card 33: 61 45 57 60 80 65 94 13 16 8 | 17 57 5 31 68 32 19 23 96 16 63 24 65 35 21 85 97 70 53 48 36 60 45 40 88
|
||||||
|
Card 34: 42 56 64 13 99 93 36 5 29 95 | 65 91 41 13 67 73 77 89 64 60 20 86 32 82 4 11 37 30 5 72 42 59 27 84 55
|
||||||
|
Card 35: 92 59 53 87 4 65 22 11 70 26 | 67 53 42 48 99 52 63 5 80 44 27 10 41 81 82 4 31 36 61 88 33 50 76 98 38
|
||||||
|
Card 36: 99 36 53 37 8 56 31 79 72 87 | 66 50 71 41 31 60 87 86 36 28 73 92 14 12 32 82 75 11 7 3 30 4 45 18 76
|
||||||
|
Card 37: 44 71 49 42 99 40 84 62 46 35 | 36 23 76 78 42 47 99 97 43 80 37 73 17 4 87 88 71 53 3 60 59 44 48 62 39
|
||||||
|
Card 38: 43 39 31 13 70 50 65 79 49 83 | 63 49 82 10 33 83 70 35 85 50 11 45 18 43 77 96 79 56 75 67 80 93 5 92 89
|
||||||
|
Card 39: 3 47 1 17 99 74 97 29 11 18 | 70 11 20 90 54 51 94 80 17 84 32 15 63 53 4 21 50 46 88 8 48 27 39 65 98
|
||||||
|
Card 40: 6 65 18 9 20 43 28 8 73 57 | 82 21 67 68 38 62 5 52 4 89 75 30 87 74 49 12 81 98 29 8 26 60 11 83 47
|
||||||
|
Card 41: 20 83 52 71 96 9 78 66 79 64 | 55 91 36 83 29 51 60 37 11 99 85 67 86 77 8 80 40 65 14 5 25 56 93 90 73
|
||||||
|
Card 42: 15 58 20 36 9 99 47 59 65 85 | 18 79 54 34 44 24 2 30 43 26 87 41 15 32 19 42 7 72 8 14 94 53 71 28 12
|
||||||
|
Card 43: 2 23 55 36 59 77 37 6 15 50 | 79 99 83 26 1 3 40 56 33 35 12 32 51 70 64 81 78 27 25 60 95 9 21 10 65
|
||||||
|
Card 44: 76 65 53 88 36 70 80 52 41 26 | 89 77 84 64 8 97 23 67 54 19 96 12 78 61 83 58 73 86 87 21 14 60 20 34 49
|
||||||
|
Card 45: 69 19 18 42 25 36 83 23 24 89 | 85 56 58 89 30 18 77 42 28 91 37 70 25 65 50 55 12 9 49 61 98 45 71 72 67
|
||||||
|
Card 46: 78 14 5 20 3 30 82 37 75 34 | 30 59 65 38 4 7 27 54 58 84 16 43 92 95 61 48 53 10 97 15 96 41 12 67 46
|
||||||
|
Card 47: 50 69 85 23 38 44 7 68 57 64 | 37 36 15 78 14 40 73 76 2 26 90 25 4 44 89 82 21 1 68 48 95 8 54 51 17
|
||||||
|
Card 48: 27 21 52 20 83 98 53 48 86 54 | 92 52 54 73 63 87 53 79 48 64 28 21 27 40 16 20 43 86 6 8 97 98 83 29 72
|
||||||
|
Card 49: 62 91 8 76 11 73 13 68 86 88 | 44 16 86 25 82 53 76 2 51 68 13 8 48 28 90 54 20 91 11 6 62 17 88 73 30
|
||||||
|
Card 50: 10 44 52 13 92 65 85 29 49 98 | 86 96 99 3 97 93 70 72 78 65 16 77 51 57 87 53 39 48 50 36 19 47 23 27 37
|
||||||
|
Card 51: 26 30 2 44 96 77 95 51 20 32 | 52 95 83 51 93 69 30 81 74 20 79 49 4 57 2 3 92 33 29 40 1 44 86 55 22
|
||||||
|
Card 52: 4 46 18 37 94 63 42 26 57 33 | 4 15 60 42 43 77 79 26 71 59 78 41 81 8 37 30 94 57 31 18 68 63 76 13 65
|
||||||
|
Card 53: 54 68 97 57 3 92 13 41 40 18 | 17 4 8 86 53 93 21 1 11 52 77 38 80 59 10 45 82 27 83 67 26 49 71 31 84
|
||||||
|
Card 54: 94 2 7 97 65 40 51 68 69 27 | 30 84 76 69 57 17 26 97 50 2 7 40 6 94 41 27 54 51 36 31 25 29 35 10 78
|
||||||
|
Card 55: 18 48 77 41 50 93 67 28 71 47 | 60 96 49 93 2 77 58 24 79 57 44 21 16 28 6 15 12 92 66 34 10 23 31 94 69
|
||||||
|
Card 56: 61 24 27 9 67 36 7 30 60 66 | 97 33 32 41 17 66 35 27 68 12 11 75 88 43 10 83 51 31 1 39 20 70 98 48 65
|
||||||
|
Card 57: 40 20 83 37 22 76 23 29 7 54 | 43 31 93 58 53 67 1 66 69 99 18 57 95 81 44 62 6 45 78 92 63 14 37 50 32
|
||||||
|
Card 58: 86 32 52 72 78 94 49 16 69 10 | 96 49 77 54 46 53 79 80 5 48 81 10 91 69 76 42 88 92 52 31 74 21 94 43 78
|
||||||
|
Card 59: 13 68 62 3 77 30 65 87 42 12 | 68 80 33 26 77 24 76 91 5 97 43 74 16 57 1 49 62 27 17 79 78 94 45 13 42
|
||||||
|
Card 60: 94 36 71 90 1 80 4 12 92 79 | 53 14 13 83 6 2 99 48 61 17 56 7 23 38 34 50 24 78 73 28 51 40 92 49 65
|
||||||
|
Card 61: 27 65 72 9 13 82 2 66 81 56 | 81 19 34 70 53 85 17 6 12 72 62 32 21 29 89 63 4 43 80 77 36 90 49 56 82
|
||||||
|
Card 62: 3 43 72 93 10 84 23 79 26 58 | 18 44 9 85 14 92 94 52 41 62 87 17 80 88 63 2 68 13 50 86 34 23 61 42 39
|
||||||
|
Card 63: 59 84 11 4 68 27 44 73 16 64 | 43 19 81 30 35 65 56 66 22 9 54 13 21 47 82 45 79 76 34 29 36 92 91 23 17
|
||||||
|
Card 64: 40 61 22 50 33 25 69 7 99 67 | 14 48 96 88 58 34 13 21 76 77 65 71 9 74 31 39 59 2 53 72 44 83 8 49 68
|
||||||
|
Card 65: 79 90 74 65 40 14 37 41 16 23 | 93 85 54 36 43 73 21 27 7 69 81 38 47 99 76 26 63 87 72 55 56 97 4 11 28
|
||||||
|
Card 66: 75 91 68 41 52 93 98 31 14 45 | 2 85 49 32 80 43 12 71 53 9 50 37 13 66 77 3 38 36 21 28 40 51 17 76 79
|
||||||
|
Card 67: 15 95 98 23 82 38 97 81 17 37 | 95 62 37 51 33 82 56 97 45 38 16 78 17 1 10 15 23 65 47 58 11 24 81 93 98
|
||||||
|
Card 68: 22 37 51 65 73 15 92 28 79 64 | 5 97 43 19 26 27 84 18 28 98 3 14 59 63 10 77 11 40 85 31 87 90 20 6 71
|
||||||
|
Card 69: 25 37 33 95 31 80 69 57 21 53 | 31 69 99 9 37 90 80 72 14 50 16 74 66 21 3 95 45 53 33 65 25 83 61 57 20
|
||||||
|
Card 70: 49 13 69 15 62 74 83 76 53 56 | 81 88 98 35 13 6 23 65 70 28 19 60 26 42 9 8 89 11 83 3 74 85 7 87 67
|
||||||
|
Card 71: 13 98 41 95 7 99 66 58 65 86 | 41 87 11 63 97 48 13 98 99 55 65 39 70 96 79 20 58 27 61 95 66 23 7 5 86
|
||||||
|
Card 72: 34 2 71 56 75 74 21 23 91 60 | 5 17 55 60 85 24 74 11 37 30 19 99 31 82 54 84 42 2 32 71 29 90 7 6 56
|
||||||
|
Card 73: 18 77 29 48 78 15 92 30 17 47 | 75 99 58 70 15 78 42 89 48 63 56 92 52 85 5 18 30 74 59 77 29 17 47 41 93
|
||||||
|
Card 74: 62 41 98 20 55 33 1 80 49 92 | 82 16 92 51 98 20 33 17 41 34 31 8 72 1 55 56 37 89 47 49 76 62 93 7 86
|
||||||
|
Card 75: 19 55 77 40 26 74 70 61 38 89 | 69 47 6 10 89 85 96 26 74 28 2 87 55 95 24 61 19 46 38 21 5 72 67 70 76
|
||||||
|
Card 76: 69 79 65 33 60 88 42 84 8 32 | 69 88 64 33 60 13 14 36 17 35 22 78 50 82 18 65 61 42 91 20 70 79 32 12 84
|
||||||
|
Card 77: 49 67 77 4 42 11 15 59 65 88 | 99 50 3 74 33 11 38 85 64 6 8 93 73 68 89 79 2 5 69 14 18 97 13 56 91
|
||||||
|
Card 78: 20 93 62 24 50 72 13 75 45 96 | 92 13 33 65 24 85 79 72 93 91 20 40 84 75 81 2 50 15 26 96 51 48 44 62 49
|
||||||
|
Card 79: 72 2 39 78 81 1 16 68 10 84 | 6 28 12 1 72 89 65 16 20 53 82 69 27 60 68 67 45 29 61 97 76 21 30 5 47
|
||||||
|
Card 80: 75 48 9 23 82 62 33 77 19 16 | 77 58 23 85 2 75 74 9 13 16 40 25 33 93 70 86 5 62 12 41 37 46 7 94 82
|
||||||
|
Card 81: 44 99 69 38 7 73 25 19 8 3 | 99 98 41 55 44 58 73 2 36 89 29 71 39 77 83 8 12 86 84 30 70 69 43 85 3
|
||||||
|
Card 82: 69 22 36 77 72 67 10 34 51 31 | 14 70 26 18 37 21 45 29 11 12 35 57 39 66 48 98 81 7 89 79 53 47 6 36 38
|
||||||
|
Card 83: 95 57 78 99 92 43 75 89 80 32 | 77 49 63 91 64 30 69 39 24 85 28 29 40 11 10 73 1 52 46 12 83 71 44 97 98
|
||||||
|
Card 84: 96 76 53 27 87 6 86 23 95 13 | 57 89 81 65 58 21 24 12 14 71 38 84 36 55 95 43 28 78 18 82 17 37 77 25 9
|
||||||
|
Card 85: 69 12 27 30 47 79 31 51 37 35 | 24 23 17 89 32 47 36 59 34 83 78 39 60 72 48 22 15 66 3 38 31 70 99 19 74
|
||||||
|
Card 86: 51 13 54 23 14 12 22 18 96 82 | 60 79 57 93 3 33 19 28 98 87 66 95 16 5 1 30 64 47 74 65 39 72 29 70 2
|
||||||
|
Card 87: 92 5 97 85 76 61 40 42 63 67 | 98 46 7 62 99 94 70 60 29 18 38 96 75 61 78 72 79 74 49 89 43 15 83 4 6
|
||||||
|
Card 88: 39 58 95 17 28 27 48 74 62 73 | 51 76 13 16 45 75 22 14 69 61 40 7 68 96 30 49 84 63 85 86 12 24 87 80 50
|
||||||
|
Card 89: 27 41 39 48 99 54 36 88 46 6 | 27 45 41 74 54 46 76 8 12 6 32 5 31 39 40 36 9 20 88 48 99 52 83 50 56
|
||||||
|
Card 90: 36 66 59 75 54 62 92 99 46 68 | 19 20 99 85 68 31 83 28 29 77 48 54 5 62 46 66 43 59 94 95 32 92 75 36 41
|
||||||
|
Card 91: 10 3 75 22 98 53 23 2 11 84 | 11 22 46 50 32 42 4 21 74 53 87 98 10 31 81 34 38 75 3 84 70 47 2 37 23
|
||||||
|
Card 92: 81 31 76 73 64 56 38 78 62 54 | 97 12 3 33 35 18 74 39 49 96 21 52 9 36 22 4 82 59 87 69 8 92 20 90 65
|
||||||
|
Card 93: 19 36 14 79 72 69 75 48 65 55 | 60 58 19 64 57 48 3 14 23 75 86 20 71 46 79 55 4 69 42 12 36 72 5 65 39
|
||||||
|
Card 94: 38 54 34 55 12 73 14 93 33 82 | 51 6 31 41 50 43 22 34 45 27 64 46 76 26 1 66 68 30 81 37 40 18 83 74 69
|
||||||
|
Card 95: 33 36 27 35 19 40 26 31 11 61 | 77 10 23 14 61 96 91 36 33 35 40 94 60 31 29 27 11 42 26 85 19 39 53 73 80
|
||||||
|
Card 96: 32 18 54 82 94 83 24 21 41 72 | 80 3 88 86 50 29 87 42 93 13 32 71 62 51 83 31 68 23 41 40 34 12 85 91 20
|
||||||
|
Card 97: 58 53 51 29 22 35 86 17 71 40 | 80 60 7 22 11 40 28 85 65 26 17 21 58 86 41 52 53 3 69 51 25 63 29 71 35
|
||||||
|
Card 98: 55 73 67 88 41 44 9 95 14 10 | 32 75 93 26 59 79 77 73 19 71 9 18 90 33 84 80 10 15 95 21 62 34 58 37 81
|
||||||
|
Card 99: 98 27 60 28 7 45 25 19 82 76 | 90 64 23 4 32 67 45 37 18 7 65 61 78 25 14 28 81 39 48 69 8 66 60 82 76
|
||||||
|
Card 100: 99 49 31 54 95 60 76 15 24 41 | 54 41 99 15 57 12 79 35 47 56 59 25 3 20 28 55 50 52 5 98 97 74 82 27 13
|
||||||
|
Card 101: 15 23 33 95 74 67 93 82 9 29 | 85 47 38 94 12 22 21 59 48 58 27 18 71 52 72 68 49 10 24 23 98 16 69 5 19
|
||||||
|
Card 102: 22 67 23 77 12 91 58 9 65 68 | 82 23 17 22 8 4 9 58 20 11 29 87 18 67 62 52 34 91 25 99 80 79 53 12 77
|
||||||
|
Card 103: 48 3 59 50 4 61 75 58 90 80 | 19 37 59 89 61 80 48 81 4 30 55 57 25 46 11 58 90 75 68 40 35 27 50 85 86
|
||||||
|
Card 104: 88 36 91 27 87 79 83 60 61 32 | 69 13 92 23 21 86 60 14 43 33 27 99 6 36 19 88 40 94 42 31 93 84 39 17 28
|
||||||
|
Card 105: 42 71 90 5 38 96 21 86 37 9 | 97 59 87 68 20 79 83 37 6 96 72 40 56 48 7 67 23 47 39 18 82 49 99 42 71
|
||||||
|
Card 106: 30 60 13 26 23 22 6 56 58 10 | 99 41 1 64 13 31 6 79 26 5 33 63 82 20 30 10 11 4 47 86 19 60 58 53 83
|
||||||
|
Card 107: 63 40 14 21 89 38 25 9 41 82 | 39 21 40 88 48 33 87 4 36 64 95 45 44 89 50 62 38 10 17 6 78 60 91 92 71
|
||||||
|
Card 108: 51 5 36 53 42 61 97 76 19 56 | 83 22 10 41 91 66 4 89 13 1 9 85 96 57 39 43 30 74 87 64 16 20 97 40 37
|
||||||
|
Card 109: 82 18 33 35 16 54 71 79 22 11 | 45 26 48 22 79 66 52 28 57 99 39 13 63 5 58 55 4 97 81 29 60 77 46 47 33
|
||||||
|
Card 110: 7 71 38 58 76 18 37 20 15 60 | 33 62 84 36 73 90 70 20 26 15 49 85 74 14 61 79 46 50 27 53 51 98 56 99 28
|
||||||
|
Card 111: 90 87 56 91 82 5 77 49 66 21 | 86 90 28 76 29 7 48 32 81 4 8 41 79 23 74 56 96 46 9 20 16 37 26 1 2
|
||||||
|
Card 112: 34 90 81 65 6 87 10 48 82 45 | 46 36 53 93 91 55 71 89 12 8 95 74 85 33 31 81 79 50 69 19 35 99 44 21 43
|
||||||
|
Card 113: 47 72 45 8 63 54 93 62 7 17 | 85 6 51 90 73 94 53 80 13 83 9 91 60 43 50 23 78 52 3 61 16 99 71 68 40
|
||||||
|
Card 114: 8 83 58 13 20 99 68 6 10 40 | 46 8 88 41 17 34 20 28 51 68 93 3 58 96 22 77 29 47 10 98 75 50 59 23 49
|
||||||
|
Card 115: 57 44 68 95 1 52 22 30 72 54 | 88 30 1 25 52 75 68 37 54 71 4 59 50 99 48 72 9 33 44 22 95 57 13 19 63
|
||||||
|
Card 116: 62 36 94 55 39 63 28 43 77 24 | 43 65 91 67 98 28 96 41 56 30 79 88 90 2 68 10 94 23 81 95 13 44 15 24 62
|
||||||
|
Card 117: 80 21 34 9 19 46 59 72 88 5 | 93 88 65 18 46 49 43 75 95 19 21 25 5 67 77 86 83 34 26 80 59 36 51 9 72
|
||||||
|
Card 118: 76 37 97 67 39 78 91 55 3 48 | 37 3 26 35 44 91 48 15 97 80 74 55 9 65 19 78 56 59 10 79 81 22 39 67 76
|
||||||
|
Card 119: 70 76 13 72 41 11 86 84 45 59 | 35 10 22 45 41 72 70 66 25 75 14 84 57 13 30 74 95 76 47 44 86 48 11 59 79
|
||||||
|
Card 120: 98 61 46 89 16 56 49 94 18 36 | 2 36 97 45 82 98 52 94 61 16 7 28 92 24 18 68 62 41 80 79 89 25 29 14 88
|
||||||
|
Card 121: 23 61 52 28 74 58 55 2 77 82 | 55 32 46 97 63 45 52 38 11 23 2 77 74 75 13 44 58 51 20 84 82 69 9 28 80
|
||||||
|
Card 122: 8 97 46 61 59 51 42 73 49 24 | 88 4 31 58 29 80 81 20 85 41 9 62 79 24 72 33 65 90 21 98 93 38 55 6 15
|
||||||
|
Card 123: 6 19 64 72 71 78 92 27 57 93 | 71 25 46 15 47 76 6 29 27 54 96 78 11 45 97 19 17 58 92 64 93 72 41 57 63
|
||||||
|
Card 124: 65 94 8 90 12 9 39 99 62 32 | 54 31 94 22 41 74 30 69 89 98 80 57 65 9 83 49 62 92 66 93 61 36 44 48 18
|
||||||
|
Card 125: 43 46 16 53 13 64 11 78 47 31 | 19 54 16 43 86 34 31 46 35 62 37 53 23 72 97 1 29 18 26 69 66 12 95 15 39
|
||||||
|
Card 126: 49 8 94 46 11 13 44 68 55 72 | 93 3 78 46 49 70 47 5 33 51 38 16 98 50 62 19 14 44 11 94 92 13 88 32 8
|
||||||
|
Card 127: 60 94 45 91 51 8 48 6 70 34 | 50 55 8 2 38 14 83 60 34 21 71 68 79 51 56 47 91 67 16 18 6 94 48 45 70
|
||||||
|
Card 128: 73 72 55 77 51 52 56 85 10 69 | 46 82 64 33 26 98 63 72 65 34 44 38 51 56 35 31 20 17 30 88 87 5 80 23 55
|
||||||
|
Card 129: 4 2 93 92 24 85 96 23 5 35 | 70 50 60 18 61 2 14 17 71 36 15 20 42 98 12 19 81 4 86 40 48 28 73 54 22
|
||||||
|
Card 130: 82 1 15 98 36 56 90 44 64 62 | 72 36 22 45 43 58 97 41 34 25 31 66 91 16 93 15 67 92 89 59 26 61 23 2 54
|
||||||
|
Card 131: 2 3 69 28 10 81 88 45 98 35 | 75 99 97 37 94 4 29 63 16 77 95 31 19 59 46 72 81 12 40 15 48 3 53 64 24
|
||||||
|
Card 132: 31 63 10 22 24 4 6 52 68 17 | 85 73 52 32 44 15 65 96 58 55 7 28 75 97 62 86 24 27 47 74 63 48 9 16 33
|
||||||
|
Card 133: 3 64 77 78 39 75 57 43 69 30 | 19 70 72 14 79 96 5 56 29 88 46 40 77 57 35 90 95 47 73 48 98 99 52 50 37
|
||||||
|
Card 134: 97 7 3 72 96 92 49 26 77 81 | 53 74 65 72 8 10 42 55 83 44 28 38 79 30 91 27 66 1 89 21 41 56 16 88 13
|
||||||
|
Card 135: 47 90 63 12 73 13 62 74 34 30 | 22 56 49 68 19 8 60 32 65 77 4 83 69 40 46 17 26 94 42 3 29 98 97 89 80
|
||||||
|
Card 136: 34 77 18 47 91 48 45 96 32 42 | 51 19 86 79 69 43 84 90 75 53 76 16 8 23 37 4 2 87 89 77 29 35 24 36 39
|
||||||
|
Card 137: 46 30 37 7 81 87 74 26 96 60 | 92 40 44 91 70 55 31 47 2 97 32 4 43 34 27 50 68 64 51 80 78 52 22 38 82
|
||||||
|
Card 138: 55 96 22 88 70 51 26 50 98 69 | 43 87 85 51 55 60 96 40 47 91 93 15 4 70 46 97 3 18 50 69 2 98 26 22 88
|
||||||
|
Card 139: 20 71 84 27 24 7 53 34 4 72 | 48 83 31 22 42 51 8 43 29 64 57 40 46 13 68 33 16 5 50 18 12 81 55 75 70
|
||||||
|
Card 140: 39 11 56 42 92 64 14 37 18 82 | 18 53 50 45 10 65 47 36 99 23 82 88 26 64 20 96 78 32 70 13 86 24 48 9 7
|
||||||
|
Card 141: 45 43 61 54 19 39 70 75 74 73 | 43 75 25 78 39 74 54 10 27 61 73 34 85 71 18 38 87 82 70 45 65 68 97 47 19
|
||||||
|
Card 142: 65 99 24 50 21 68 46 89 29 12 | 12 23 95 96 42 67 82 49 16 8 80 4 85 20 76 89 34 40 44 39 45 86 14 94 61
|
||||||
|
Card 143: 34 97 20 14 7 31 19 24 16 71 | 16 51 81 20 34 7 46 3 23 83 84 17 73 96 52 31 32 27 24 2 49 44 97 67 14
|
||||||
|
Card 144: 2 93 72 6 64 3 5 31 56 74 | 64 38 21 6 37 78 20 45 93 58 47 29 55 13 72 14 59 98 25 3 39 99 65 85 31
|
||||||
|
Card 145: 97 58 24 50 43 86 78 28 73 98 | 38 65 96 3 31 17 74 76 72 48 10 15 85 90 40 75 82 44 87 80 53 1 63 46 67
|
||||||
|
Card 146: 55 98 17 39 30 14 89 43 91 11 | 63 90 51 73 37 12 91 74 55 3 34 14 89 17 52 84 15 69 44 28 30 81 77 22 47
|
||||||
|
Card 147: 18 92 20 12 39 30 91 23 69 51 | 51 4 70 33 52 11 50 31 15 27 35 20 93 53 74 84 73 65 43 96 89 79 47 95 8
|
||||||
|
Card 148: 67 16 96 88 34 92 99 52 58 81 | 71 70 74 45 75 31 25 10 59 17 76 47 8 2 26 28 94 14 12 6 91 20 86 97 11
|
||||||
|
Card 149: 42 14 48 49 37 60 79 64 59 35 | 89 83 8 46 78 1 13 76 70 82 59 66 84 25 21 65 19 68 72 93 36 11 81 80 90
|
||||||
|
Card 150: 56 59 61 27 85 80 10 42 43 15 | 52 50 83 65 19 11 69 7 63 38 96 44 30 3 40 58 84 16 88 8 98 90 22 39 62
|
||||||
|
Card 151: 24 6 35 26 79 71 45 59 98 90 | 36 52 44 84 76 22 21 34 23 94 13 43 49 32 9 57 53 31 29 95 92 88 74 45 61
|
||||||
|
Card 152: 92 79 98 66 84 64 44 20 32 57 | 83 16 49 41 50 2 72 28 56 81 65 60 54 74 59 26 22 12 70 53 85 73 88 15 35
|
||||||
|
Card 153: 42 49 39 99 72 12 82 50 29 92 | 20 71 55 78 84 87 2 73 23 8 18 66 31 62 90 26 4 48 54 91 72 80 70 67 17
|
||||||
|
Card 154: 70 60 1 78 8 62 24 2 67 84 | 55 84 70 38 1 15 6 74 78 62 2 39 71 63 85 11 24 67 90 64 36 46 60 59 8
|
||||||
|
Card 155: 2 95 93 76 64 89 79 92 35 72 | 79 4 95 30 27 96 98 45 84 23 41 76 34 93 89 2 97 47 72 40 12 64 35 92 11
|
||||||
|
Card 156: 13 79 80 67 41 46 21 57 4 27 | 73 14 49 57 4 60 90 45 80 21 41 13 67 93 85 79 7 46 91 37 72 32 66 89 27
|
||||||
|
Card 157: 16 56 29 19 97 91 90 22 78 9 | 74 29 53 99 97 88 85 62 75 38 32 10 51 28 43 14 6 81 39 40 13 17 79 92 35
|
||||||
|
Card 158: 90 15 84 86 88 10 43 32 78 44 | 10 80 32 88 35 64 23 92 62 83 19 94 57 52 95 67 75 73 21 89 33 74 26 6 55
|
||||||
|
Card 159: 90 71 30 85 20 12 2 95 79 89 | 8 33 78 81 44 88 82 58 51 40 48 34 7 94 45 84 53 66 17 62 68 27 3 28 96
|
||||||
|
Card 160: 34 29 24 75 45 7 15 91 88 90 | 91 69 24 90 65 54 38 88 15 72 2 7 53 75 81 89 21 35 3 52 30 83 49 37 34
|
||||||
|
Card 161: 15 66 33 37 4 19 68 39 86 30 | 65 4 86 6 85 19 26 43 74 50 46 1 22 75 24 27 53 17 14 69 15 73 36 31 30
|
||||||
|
Card 162: 72 65 87 45 82 88 36 9 57 42 | 85 45 43 47 26 8 72 2 46 65 20 28 76 42 57 90 44 82 50 93 35 78 73 36 88
|
||||||
|
Card 163: 4 45 52 37 7 93 81 39 64 31 | 60 97 86 37 87 31 76 91 63 40 72 39 52 43 22 64 19 24 82 98 77 26 7 21 83
|
||||||
|
Card 164: 73 34 98 3 70 23 4 27 86 62 | 34 59 6 62 17 48 33 86 70 53 43 52 89 74 98 4 24 79 50 57 84 88 3 75 67
|
||||||
|
Card 165: 59 6 18 72 17 53 35 86 51 16 | 72 56 59 40 98 88 15 3 16 84 97 64 96 7 78 80 24 2 86 18 60 51 52 10 85
|
||||||
|
Card 166: 63 20 3 73 48 60 54 86 2 50 | 54 4 96 55 99 31 73 26 46 89 28 48 27 17 86 7 30 71 33 94 25 66 15 43 3
|
||||||
|
Card 167: 96 12 93 23 43 49 70 22 76 60 | 4 70 6 19 98 9 26 24 15 85 32 51 8 25 88 68 39 41 97 74 60 71 42 3 94
|
||||||
|
Card 168: 19 33 79 78 53 47 42 67 14 63 | 15 13 33 54 18 60 6 55 46 79 91 26 58 98 1 65 51 63 27 37 84 96 62 28 10
|
||||||
|
Card 169: 42 59 85 69 71 24 40 68 67 83 | 6 91 13 57 8 22 4 29 85 94 43 44 55 30 84 98 11 54 71 82 39 90 78 7 80
|
||||||
|
Card 170: 87 39 98 12 59 5 22 48 78 44 | 69 27 17 64 83 68 5 1 24 43 2 75 89 61 72 95 3 36 38 82 25 10 11 91 87
|
||||||
|
Card 171: 50 55 88 89 30 59 64 76 49 5 | 28 45 63 53 39 70 36 43 62 79 99 98 95 19 9 97 61 75 15 33 52 10 93 11 90
|
||||||
|
Card 172: 40 61 73 9 67 22 18 34 76 71 | 14 23 7 11 98 17 97 69 74 48 54 96 56 82 37 1 68 2 57 60 36 51 59 42 10
|
||||||
|
Card 173: 44 88 19 11 84 91 62 31 73 78 | 72 57 15 9 69 26 11 37 10 56 97 3 51 86 93 25 19 46 87 84 20 31 99 88 61
|
||||||
|
Card 174: 27 9 36 51 19 64 89 16 53 61 | 51 15 56 84 19 44 96 17 74 64 76 9 61 98 27 36 59 67 32 16 89 70 53 66 24
|
||||||
|
Card 175: 75 73 27 91 47 15 90 30 48 2 | 27 43 91 95 71 50 90 15 75 58 73 3 48 20 2 31 6 1 89 72 30 66 37 17 68
|
||||||
|
Card 176: 3 87 49 74 88 50 90 2 10 11 | 68 34 89 67 1 9 64 8 21 27 96 84 48 37 69 28 18 12 97 16 40 93 5 41 77
|
||||||
|
Card 177: 68 1 51 19 59 52 27 81 78 99 | 91 25 17 35 84 74 9 67 26 2 65 83 98 22 53 18 88 56 63 82 66 39 79 58 96
|
||||||
|
Card 178: 64 81 17 50 42 57 29 80 16 12 | 54 73 15 89 76 39 42 65 32 16 81 6 29 62 57 46 17 53 7 2 64 44 82 33 50
|
||||||
|
Card 179: 27 49 28 97 66 31 62 50 20 32 | 31 97 78 94 13 63 1 4 76 28 62 66 57 99 67 74 20 7 27 2 32 49 50 71 45
|
||||||
|
Card 180: 34 89 40 28 95 80 47 71 31 6 | 80 91 47 6 20 28 85 46 21 18 59 87 83 15 31 40 39 1 34 5 95 71 82 89 88
|
||||||
|
Card 181: 73 23 70 89 53 63 41 6 10 56 | 54 13 14 90 40 74 29 61 66 36 82 97 21 12 81 15 60 76 52 98 88 2 73 35 1
|
||||||
|
Card 182: 33 26 55 93 49 35 94 50 45 99 | 93 40 99 3 36 35 49 45 51 82 15 54 88 94 50 8 26 6 84 33 18 59 7 55 29
|
||||||
|
Card 183: 30 94 37 82 46 36 73 83 16 65 | 94 2 38 44 30 20 36 48 29 26 58 43 33 3 14 39 98 17 76 87 81 86 66 24 63
|
||||||
|
Card 184: 90 41 81 8 32 88 89 99 44 92 | 41 92 22 3 35 83 8 46 81 44 89 34 88 90 75 69 36 97 32 99 48 53 57 63 38
|
||||||
|
Card 185: 79 4 70 97 40 23 84 65 28 82 | 99 19 18 55 4 35 49 45 63 82 1 54 59 60 93 67 38 26 47 98 79 92 9 51 66
|
||||||
|
Card 186: 92 58 39 15 52 86 5 47 9 1 | 1 95 48 37 77 43 69 30 76 96 99 87 34 7 91 66 52 38 16 57 85 62 13 12 51
|
||||||
|
Card 187: 77 51 68 38 98 76 73 14 41 81 | 41 30 92 65 32 68 38 20 64 54 77 97 14 44 70 91 51 10 57 48 13 76 78 98 40
|
||||||
|
Card 188: 49 61 74 63 53 22 7 23 87 28 | 55 83 31 91 42 34 48 60 68 72 69 14 8 52 2 30 89 20 92 45 17 51 62 1 70
|
||||||
|
Card 189: 85 50 70 15 89 93 11 63 60 82 | 67 95 52 98 26 86 35 2 72 43 44 42 6 49 3 11 37 39 51 54 8 4 31 14 41
|
||||||
|
Card 190: 18 65 32 15 75 48 19 96 69 67 | 62 16 90 58 98 10 78 41 79 25 17 24 20 93 86 49 23 46 13 92 43 34 30 64 51
|
||||||
|
Card 191: 46 53 3 6 54 19 96 69 44 48 | 78 23 99 38 68 4 35 22 81 55 98 73 43 42 83 80 62 41 66 61 25 89 34 20 54
|
||||||
|
Card 192: 54 77 76 45 49 99 57 69 86 72 | 91 65 98 79 10 4 57 71 86 80 34 93 73 15 5 59 61 77 88 75 2 48 44 12 56
|
||||||
|
Card 193: 81 40 62 53 8 10 74 97 12 17 | 7 25 71 38 44 55 51 69 93 40 18 57 32 84 96 17 97 88 34 26 73 86 68 59 35
|
||||||
|
Card 194: 51 12 21 52 31 6 44 23 76 7 | 1 57 96 55 70 92 46 58 90 50 14 48 49 84 44 74 47 34 87 18 72 56 37 31 17
|
||||||
|
Card 195: 36 37 17 41 77 88 12 47 94 50 | 83 63 65 35 28 31 38 53 44 13 8 12 69 20 78 48 16 97 21 29 84 94 66 98 75
|
||||||
|
Card 196: 57 56 99 33 67 55 38 11 81 29 | 17 28 1 98 12 87 69 2 60 96 6 41 89 44 50 84 80 86 54 95 7 52 94 8 30
|
||||||
|
Card 197: 69 63 15 90 72 56 19 46 27 37 | 96 78 97 50 35 23 62 55 1 71 4 58 57 86 88 22 68 17 83 18 45 94 30 40 14
|
||||||
|
Card 198: 80 36 74 64 48 57 10 96 31 93 | 87 76 81 9 19 71 13 82 40 31 1 17 84 36 46 26 10 51 94 27 77 38 11 28 35
|
||||||
|
Card 199: 86 68 30 32 98 92 48 54 65 33 | 31 92 48 86 68 73 15 13 66 32 98 8 82 12 54 65 6 33 83 84 94 56 30 89 19
|
||||||
|
Card 200: 14 32 69 66 22 60 85 50 6 27 | 1 6 53 86 67 33 56 93 48 16 22 52 85 14 28 91 90 9 17 13 94 20 21 66 50
|
||||||
|
Card 201: 83 31 70 33 92 24 19 84 61 17 | 10 70 43 98 90 40 31 87 38 50 73 61 18 33 83 54 84 52 20 75 21 19 24 92 17
|
||||||
|
Card 202: 60 43 55 73 13 5 31 51 40 10 | 14 58 69 7 57 86 53 87 25 98 39 93 92 90 47 66 96 35 44 71 42 77 94 76 65
|
||||||
|
Card 203: 49 16 55 48 62 61 64 47 32 6 | 1 76 49 67 16 31 99 81 39 15 4 75 55 17 64 35 46 62 87 47 34 58 53 8 21
|
||||||
|
Card 204: 71 37 46 23 9 28 58 66 75 11 | 58 48 31 66 34 11 72 64 71 15 30 28 46 85 5 37 75 9 23 14 89 2 40 92 47
|
||||||
|
Card 205: 77 66 32 84 31 7 61 21 62 99 | 77 62 31 36 51 74 21 66 25 13 39 85 54 41 64 8 84 16 86 10 2 99 32 61 7
|
||||||
|
Card 206: 52 43 11 33 40 7 49 87 25 8 | 77 39 16 25 20 79 65 72 43 26 49 33 52 19 14 60 87 63 85 36 8 38 11 34 47
|
||||||
|
Card 207: 13 40 42 63 88 35 7 55 81 74 | 77 45 9 83 55 88 37 13 19 81 84 74 46 36 50 7 35 25 11 31 42 10 40 63 73
|
||||||
|
Card 208: 25 28 12 74 16 13 35 44 53 96 | 43 4 54 42 49 78 87 76 95 35 12 6 44 74 31 28 25 75 30 8 18 53 86 21 39
|
||||||
|
Card 209: 13 9 49 95 35 78 34 4 33 71 | 51 45 82 59 57 35 34 30 29 66 49 53 60 25 36 40 92 73 77 71 88 81 28 63 43
|
||||||
|
Card 210: 62 92 40 73 1 45 17 12 85 54 | 17 50 1 43 40 66 2 92 31 34 89 81 11 69 74 10 84 55 79 52 49 83 87 12 96
|
||||||
|
Card 211: 46 44 30 97 76 83 84 74 26 70 | 28 78 93 6 45 69 90 52 97 44 4 88 46 74 38 91 81 14 63 86 42 39 43 20 7
|
||||||
|
Card 212: 10 45 38 77 69 4 29 16 59 94 | 59 48 94 55 14 40 92 9 8 41 13 29 37 39 12 16 42 43 1 32 22 63 10 31 51
|
||||||
|
Card 213: 96 62 42 78 74 88 99 50 20 63 | 74 88 98 67 62 8 33 44 34 82 27 6 13 20 50 43 84 16 59 85 92 87 81 28 9
|
||||||
|
Card 214: 54 88 80 55 63 69 76 95 86 19 | 7 71 90 74 85 11 3 87 64 78 80 44 20 56 75 59 42 43 96 32 12 77 41 14 81
|
||||||
|
Card 215: 5 39 47 66 90 45 34 77 80 6 | 7 2 26 76 36 9 88 14 53 93 84 33 50 5 47 69 63 71 66 12 62 39 90 1 51
|
||||||
|
Card 216: 8 99 6 95 48 33 44 62 26 57 | 97 27 61 71 53 41 4 64 12 60 65 30 58 73 24 3 35 50 11 94 83 19 54 15 36
|
||||||
|
Card 217: 98 39 72 11 48 76 78 23 18 35 | 73 49 20 17 24 63 9 58 16 44 5 21 96 35 85 19 25 33 43 27 40 52 30 86 4
|
||||||
|
Card 218: 29 46 2 34 89 12 45 7 8 1 | 14 23 44 67 32 83 41 85 19 33 66 48 77 38 95 50 73 63 29 47 91 15 24 5 60
|
||||||
|
Card 219: 44 83 7 80 68 17 15 4 45 31 | 41 57 52 79 99 49 98 17 28 82 55 93 50 12 59 62 37 33 1 35 78 6 64 26 43
|
||||||
|
Card 220: 34 88 44 16 90 6 58 94 64 73 | 5 70 76 53 15 68 28 4 32 65 92 91 24 86 85 31 36 67 83 18 95 45 8 51 74
|
@ -0,0 +1,22 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Part1"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
RESULT = 0
|
||||||
|
|
||||||
|
for line in sys.stdin.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
card_no, numbers = line.split(": ")
|
||||||
|
numbers_win, numbers_have = numbers.split(" | ")
|
||||||
|
numbers_win = set(numbers_win.split())
|
||||||
|
numbers_have = set(numbers_have.split())
|
||||||
|
|
||||||
|
matches = numbers_win & numbers_have
|
||||||
|
num_matches = len(matches)
|
||||||
|
worth = 2 ** (num_matches - 1)
|
||||||
|
worth = int(worth)
|
||||||
|
print(f"{card_no}: {worth}")
|
||||||
|
RESULT += worth
|
||||||
|
|
||||||
|
print(RESULT)
|
@ -0,0 +1,55 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Part1"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
RESULT = 0
|
||||||
|
|
||||||
|
CARD_NUMS = []
|
||||||
|
CARD_WORTHS = {}
|
||||||
|
CARDS_COUNTS = defaultdict(int)
|
||||||
|
|
||||||
|
for line in sys.stdin.readlines():
|
||||||
|
line = line.strip()
|
||||||
|
card_no, numbers = line.split(": ")
|
||||||
|
|
||||||
|
card_no = card_no.split()[1]
|
||||||
|
card_no = int(card_no)
|
||||||
|
CARD_NUMS.append(card_no)
|
||||||
|
print("processing", card_no)
|
||||||
|
|
||||||
|
CARDS_COUNTS[card_no] += 1
|
||||||
|
|
||||||
|
numbers_win, numbers_have = numbers.split(" | ")
|
||||||
|
numbers_win = set(numbers_win.split())
|
||||||
|
numbers_have = set(numbers_have.split())
|
||||||
|
|
||||||
|
matches = numbers_win & numbers_have
|
||||||
|
num_matches = len(matches)
|
||||||
|
|
||||||
|
for num in range(card_no + 1, card_no + num_matches + 1):
|
||||||
|
print("add num", num)
|
||||||
|
CARDS_COUNTS[num] += CARDS_COUNTS[card_no]
|
||||||
|
|
||||||
|
worth = 2 ** (num_matches - 1)
|
||||||
|
worth = int(worth)
|
||||||
|
|
||||||
|
CARD_WORTHS[card_no] = worth
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(CARD_NUMS)
|
||||||
|
print(CARDS_COUNTS)
|
||||||
|
print(CARD_WORTHS)
|
||||||
|
|
||||||
|
print()
|
||||||
|
RESULT = 0
|
||||||
|
for card_no in CARD_NUMS:
|
||||||
|
count = CARDS_COUNTS[card_no]
|
||||||
|
worth = CARD_WORTHS[card_no]
|
||||||
|
|
||||||
|
print(f"{card_no}: {count:3} x {worth:3} pts")
|
||||||
|
RESULT += count
|
||||||
|
|
||||||
|
print()
|
||||||
|
print(RESULT)
|
Loading…
Reference in New Issue