add 2023 stuff oops
This commit is contained in:
parent
77bea7b01a
commit
0f38cd6bf0
25
2023/01/01.py
Normal file
25
2023/01/01.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
with open("input.txt") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
def extract_numbers(line: str) -> int:
|
||||
nums = [c for c in line if c in "1234567890"]
|
||||
return int(nums[0] + nums[-1])
|
||||
|
||||
part1 = sum(map(extract_numbers, lines))
|
||||
print(part1)
|
||||
|
||||
def extract_numbers2(line: str) -> int:
|
||||
# we need to preserve overlaps in both directions
|
||||
line = line.replace("one", "one1one")
|
||||
line = line.replace("two", "two2two")
|
||||
line = line.replace("three", "three3three")
|
||||
line = line.replace("four", "four4four")
|
||||
line = line.replace("five", "five5five")
|
||||
line = line.replace("six", "six6six")
|
||||
line = line.replace("seven", "seven7seven")
|
||||
line = line.replace("eight", "eight8eight")
|
||||
line = line.replace("nine", "nine9nine")
|
||||
return extract_numbers(line)
|
||||
|
||||
part2 = sum(map(extract_numbers2, lines))
|
||||
print(part2)
|
1000
2023/01/input.txt
Normal file
1000
2023/01/input.txt
Normal file
File diff suppressed because it is too large
Load diff
50
2023/02/02.py
Normal file
50
2023/02/02.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
with open("input.txt") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
def parse_game(line: str) -> tuple[int, list[dict[str, int]]]:
|
||||
prefix, turns = line.strip("\n").split(": ")
|
||||
game = int(prefix[5:]) # remove "Game ", yielding just the number
|
||||
draw_list = []
|
||||
for turn in turns.split("; "):
|
||||
draws = {}
|
||||
for color in turn.split(", "):
|
||||
v, k = color.split(" ") # count, then color
|
||||
draws[k] = int(v) # map color -> count
|
||||
draw_list.append(draws)
|
||||
return (game, draw_list)
|
||||
|
||||
part1 = 0
|
||||
R = 12
|
||||
G = 13
|
||||
B = 14
|
||||
for line in lines:
|
||||
game, draw_list = parse_game(line)
|
||||
possible = True
|
||||
for draw in draw_list:
|
||||
red = draw.get("red", 0)
|
||||
green = draw.get("green", 0)
|
||||
blue = draw.get("blue", 0)
|
||||
if red > R or green > G or blue > B:
|
||||
possible = False
|
||||
if possible:
|
||||
part1 += game
|
||||
|
||||
print(part1)
|
||||
|
||||
part2 = 0
|
||||
for line in lines:
|
||||
game, draw_list = parse_game(line)
|
||||
R = 0
|
||||
G = 0
|
||||
B = 0
|
||||
for draw in draw_list:
|
||||
red = draw.get("red", 0)
|
||||
green = draw.get("green", 0)
|
||||
blue = draw.get("blue", 0)
|
||||
R = max(red, R)
|
||||
G = max(green, G)
|
||||
B = max(blue, B)
|
||||
power = R*G*B
|
||||
part2 += power
|
||||
|
||||
print(part2)
|
100
2023/02/input.txt
Normal file
100
2023/02/input.txt
Normal file
|
@ -0,0 +1,100 @@
|
|||
Game 1: 12 blue, 15 red, 2 green; 17 red, 8 green, 5 blue; 8 red, 17 blue; 9 green, 1 blue, 4 red
|
||||
Game 2: 6 red, 6 blue, 2 green; 1 blue, 1 red; 6 green, 1 red, 10 blue
|
||||
Game 3: 1 green, 2 blue; 7 blue, 4 green; 2 green, 1 blue; 10 blue, 4 green; 4 blue; 1 green, 7 blue, 1 red
|
||||
Game 4: 16 red, 12 blue, 10 green; 15 red, 5 green, 6 blue; 10 green, 15 red, 12 blue
|
||||
Game 5: 2 green, 2 red, 9 blue; 1 red, 5 green; 4 green, 12 blue, 1 red; 5 blue, 8 green
|
||||
Game 6: 17 blue, 3 green, 4 red; 6 green, 16 blue, 3 red; 2 red, 15 blue
|
||||
Game 7: 4 green, 10 red; 1 green, 4 red, 4 blue; 4 blue, 11 red
|
||||
Game 8: 8 green, 4 blue; 17 green, 4 red; 10 blue, 5 green, 9 red; 9 green, 8 red, 3 blue; 9 green, 5 red, 2 blue
|
||||
Game 9: 4 red, 2 green; 7 blue, 3 red, 3 green; 3 green, 7 blue, 3 red
|
||||
Game 10: 3 green, 2 red, 2 blue; 3 green, 11 red, 1 blue; 16 green, 11 red
|
||||
Game 11: 2 blue, 18 green; 12 blue, 1 green; 2 green, 6 blue; 1 red, 4 blue, 20 green; 14 blue, 1 red, 4 green
|
||||
Game 12: 2 green, 1 blue, 7 red; 11 red, 3 green, 6 blue; 1 red, 2 blue, 3 green; 4 red, 2 green, 5 blue
|
||||
Game 13: 4 red, 17 blue, 5 green; 6 blue, 2 green; 12 blue, 4 green, 2 red; 5 green, 9 blue; 5 green, 3 blue, 3 red; 4 green, 1 red, 7 blue
|
||||
Game 14: 4 blue, 18 green; 3 blue, 3 red, 13 green; 5 blue, 10 green; 10 green, 2 blue; 1 blue, 14 green; 3 blue, 18 green, 2 red
|
||||
Game 15: 1 green, 2 blue, 1 red; 1 green, 2 red, 1 blue; 1 green, 2 red; 1 green, 4 blue, 4 red; 6 blue, 2 red, 1 green; 3 blue, 2 red
|
||||
Game 16: 3 green, 2 red; 4 green, 1 red, 8 blue; 5 blue, 9 red, 3 green; 7 blue, 19 green, 18 red
|
||||
Game 17: 10 blue, 9 red, 7 green; 16 red, 11 green, 11 blue; 8 blue, 3 green; 12 red, 1 blue, 10 green
|
||||
Game 18: 11 green, 11 blue, 5 red; 7 red, 11 green, 13 blue; 5 green, 9 red, 6 blue; 9 red, 16 green, 17 blue
|
||||
Game 19: 8 red, 3 green, 16 blue; 13 green, 8 blue; 7 red, 8 green, 1 blue; 13 red, 3 blue, 7 green; 6 green, 14 blue, 13 red; 15 blue, 9 green, 13 red
|
||||
Game 20: 1 red, 7 green, 5 blue; 14 green, 4 blue; 10 green, 11 blue, 2 red; 2 red, 3 blue, 1 green; 1 red, 5 blue, 8 green
|
||||
Game 21: 10 green, 12 blue, 6 red; 17 blue, 6 red, 6 green; 12 blue, 9 green, 4 red; 5 blue, 3 red, 4 green; 6 green, 7 blue, 5 red
|
||||
Game 22: 1 blue, 3 red, 16 green; 4 red, 1 blue, 3 green; 12 green, 1 blue, 2 red; 12 red
|
||||
Game 23: 2 red, 6 blue, 1 green; 11 red, 13 blue, 4 green; 8 red, 3 blue, 6 green; 2 green, 8 blue, 2 red; 7 red, 11 blue, 4 green
|
||||
Game 24: 4 red, 12 green, 2 blue; 8 blue, 15 red; 1 blue, 10 green, 8 red; 1 green, 2 blue, 6 red; 10 green, 8 blue, 5 red
|
||||
Game 25: 2 blue, 11 green; 17 green, 1 red, 2 blue; 2 blue, 3 red, 1 green
|
||||
Game 26: 16 blue, 11 green; 4 green; 9 green, 4 blue; 10 green, 5 blue; 1 red, 5 blue, 9 green; 5 green, 5 blue
|
||||
Game 27: 10 green, 2 red; 5 blue, 1 red; 6 red, 5 green
|
||||
Game 28: 3 red, 5 green, 10 blue; 1 red, 5 green, 2 blue; 6 blue, 2 green, 2 red; 6 red, 9 blue, 1 green; 3 red; 3 red, 2 green, 2 blue
|
||||
Game 29: 8 red, 18 blue, 5 green; 1 blue, 8 red, 2 green; 2 red, 4 green, 18 blue; 6 red, 4 green, 7 blue
|
||||
Game 30: 1 red, 18 green; 11 green; 4 blue, 5 red, 14 green; 3 green, 8 blue, 2 red
|
||||
Game 31: 1 red, 5 blue, 17 green; 7 blue; 10 green, 8 blue, 1 red; 11 green, 4 blue
|
||||
Game 32: 5 blue, 15 red, 12 green; 6 red, 8 green, 8 blue; 2 red, 14 green, 3 blue; 4 blue, 15 green; 7 blue, 12 red, 7 green; 2 blue, 9 red, 7 green
|
||||
Game 33: 13 red, 2 green; 1 green, 7 red, 15 blue; 1 green, 14 blue, 13 red; 8 red, 2 green; 12 red, 14 blue, 10 green; 8 green, 16 blue, 10 red
|
||||
Game 34: 11 green, 9 blue, 2 red; 4 red, 1 green, 8 blue; 4 blue, 7 green, 4 red; 7 blue, 1 red, 8 green; 9 blue, 1 red, 4 green; 2 red, 10 green, 4 blue
|
||||
Game 35: 3 red, 9 blue; 11 blue, 3 red, 12 green; 7 green, 10 blue, 2 red
|
||||
Game 36: 9 blue, 3 green, 3 red; 5 blue, 1 red, 3 green; 2 green, 6 red; 9 blue, 7 red
|
||||
Game 37: 1 red, 7 blue; 4 red, 1 green; 1 green, 9 red, 9 blue
|
||||
Game 38: 1 green, 12 red; 4 green, 12 red, 4 blue; 5 green, 10 red; 6 red, 4 green, 3 blue; 4 green, 10 red; 2 green, 5 blue, 4 red
|
||||
Game 39: 2 blue; 4 red; 4 red, 5 green, 1 blue
|
||||
Game 40: 7 red, 2 green, 17 blue; 12 green, 1 red, 7 blue; 9 green, 2 red, 8 blue
|
||||
Game 41: 18 green, 5 red, 4 blue; 20 green, 17 blue, 5 red; 3 red, 7 blue, 7 green; 4 red, 19 green, 18 blue; 20 blue, 20 green
|
||||
Game 42: 1 green, 6 blue, 1 red; 5 blue, 1 red, 3 green; 3 green, 7 blue, 1 red
|
||||
Game 43: 4 blue, 6 green, 13 red; 16 red, 7 blue, 8 green; 4 green, 16 red
|
||||
Game 44: 5 green, 4 red, 13 blue; 4 red, 12 blue, 3 green; 6 green
|
||||
Game 45: 1 red, 17 blue, 15 green; 6 red, 3 green, 9 blue; 5 green, 1 blue, 7 red; 6 blue, 4 red, 4 green
|
||||
Game 46: 1 blue, 11 red, 1 green; 2 red, 2 green, 1 blue; 4 red, 1 green, 1 blue; 2 blue, 7 red, 3 green; 11 red, 3 green
|
||||
Game 47: 2 red, 1 blue; 1 green, 1 red, 1 blue; 5 green, 1 red
|
||||
Game 48: 9 blue, 1 red; 1 green, 2 red, 11 blue; 2 red, 6 blue
|
||||
Game 49: 5 blue, 7 red, 17 green; 5 red, 4 green, 7 blue; 1 red, 3 blue; 4 red, 12 green, 6 blue; 6 green, 4 blue, 3 red
|
||||
Game 50: 11 blue, 12 green, 1 red; 8 green, 7 red, 9 blue; 13 red, 12 blue, 10 green; 5 green, 10 blue, 3 red
|
||||
Game 51: 8 blue, 1 red; 5 red, 2 green; 9 blue, 6 red, 4 green; 4 green, 1 red, 13 blue; 15 blue, 3 red, 8 green; 6 red, 1 green, 4 blue
|
||||
Game 52: 2 blue, 1 red; 1 red, 4 blue, 5 green; 3 red, 14 blue, 2 green
|
||||
Game 53: 8 blue, 10 green, 11 red; 5 red, 4 blue, 19 green; 8 red, 3 blue; 3 red, 3 blue, 2 green; 4 red, 4 green
|
||||
Game 54: 3 green, 17 red; 7 green, 13 red, 5 blue; 11 blue, 10 red, 10 green; 3 green, 19 red, 4 blue; 11 green, 6 blue, 19 red; 5 red, 4 blue, 9 green
|
||||
Game 55: 3 blue, 4 red; 1 red, 1 blue, 2 green; 4 blue, 2 green, 4 red
|
||||
Game 56: 10 red, 3 green, 5 blue; 2 blue, 2 red; 7 red, 3 blue, 2 green
|
||||
Game 57: 12 red, 1 blue, 8 green; 1 blue, 3 green, 10 red; 5 green, 8 red
|
||||
Game 58: 6 red, 4 green, 2 blue; 7 red, 6 blue, 14 green; 5 blue, 6 red, 2 green; 2 red, 4 blue; 7 blue, 12 green; 7 green, 3 blue, 8 red
|
||||
Game 59: 6 red, 5 blue; 5 blue, 1 green; 1 blue, 6 red; 4 blue, 2 red, 1 green; 3 red, 2 blue; 3 blue, 5 red, 1 green
|
||||
Game 60: 1 red, 12 green, 2 blue; 4 red, 5 blue; 12 green, 1 red; 5 blue, 13 red, 17 green; 15 green, 1 blue
|
||||
Game 61: 10 blue, 18 red; 4 blue, 1 green, 14 red; 4 blue, 2 green; 2 green, 6 red, 10 blue
|
||||
Game 62: 2 green, 13 blue, 8 red; 7 green, 5 red, 8 blue; 5 red, 8 blue; 3 red, 5 green, 4 blue; 15 blue, 5 red, 6 green
|
||||
Game 63: 6 red, 7 green, 2 blue; 2 red, 6 green; 2 blue, 4 red, 5 green; 1 blue, 2 red, 5 green; 4 red, 8 green; 9 green, 2 red
|
||||
Game 64: 4 red, 4 blue; 7 blue, 5 red; 8 green, 5 red, 6 blue; 2 red, 3 blue, 1 green; 7 blue, 9 green, 7 red; 11 green, 2 red, 3 blue
|
||||
Game 65: 1 red, 11 green, 9 blue; 2 red, 5 green, 17 blue; 2 red, 3 blue, 6 green; 2 red, 6 green, 14 blue
|
||||
Game 66: 7 green, 5 red, 2 blue; 5 red, 7 green, 2 blue; 6 green, 3 blue, 15 red; 8 green, 20 red, 4 blue; 8 red, 8 green, 3 blue; 3 blue, 11 red, 5 green
|
||||
Game 67: 2 blue, 2 green; 6 blue, 1 green, 3 red; 3 red, 7 green, 4 blue; 1 red, 1 green, 8 blue
|
||||
Game 68: 1 green, 3 red; 2 green, 1 blue, 5 red; 2 red, 2 green, 1 blue; 2 green, 3 red, 1 blue; 6 red, 1 blue
|
||||
Game 69: 4 red, 2 green, 3 blue; 14 red; 3 blue; 11 red, 1 green; 13 red, 3 green, 2 blue
|
||||
Game 70: 1 green, 1 blue, 6 red; 1 green, 4 red, 1 blue; 6 red, 1 blue
|
||||
Game 71: 1 green, 8 blue, 10 red; 6 green, 3 red, 2 blue; 14 red, 3 green; 9 blue, 2 green, 2 red; 7 blue, 5 red, 1 green; 6 green, 5 blue, 10 red
|
||||
Game 72: 2 red, 10 blue; 1 red, 7 blue, 4 green; 1 red, 3 green, 6 blue
|
||||
Game 73: 6 red, 6 blue, 5 green; 1 blue, 11 green, 7 red; 10 red, 7 blue, 2 green
|
||||
Game 74: 4 green, 2 red, 3 blue; 1 red, 6 green; 2 red, 4 blue; 1 blue; 2 blue, 1 green
|
||||
Game 75: 10 red, 5 blue, 1 green; 12 blue; 2 green, 11 blue, 9 red; 1 blue, 14 red; 2 red, 2 green, 13 blue
|
||||
Game 76: 9 green, 1 blue; 8 green, 2 blue, 7 red; 4 blue, 7 green, 4 red
|
||||
Game 77: 14 red, 3 blue, 10 green; 3 blue, 7 green, 2 red; 5 red, 7 green, 3 blue; 14 red, 8 green, 3 blue; 9 green, 5 red; 2 blue, 7 red, 15 green
|
||||
Game 78: 5 blue, 9 green, 8 red; 11 green, 9 blue, 4 red; 8 red, 2 blue, 10 green; 3 blue, 7 green
|
||||
Game 79: 4 red, 6 blue, 10 green; 2 blue, 17 green, 15 red; 15 red, 6 blue, 14 green
|
||||
Game 80: 2 red, 8 green; 6 blue, 6 green; 1 green, 3 red, 8 blue; 5 green, 4 blue, 3 red; 3 blue, 1 red; 7 green, 8 blue, 3 red
|
||||
Game 81: 5 blue, 1 red; 10 blue, 7 red, 3 green; 4 green, 1 red, 10 blue; 8 red, 4 blue, 3 green; 11 blue, 9 green, 1 red; 6 red, 10 green
|
||||
Game 82: 1 green, 2 blue, 1 red; 2 blue, 1 green, 2 red; 2 red, 8 green; 3 red, 3 blue, 5 green
|
||||
Game 83: 3 blue, 4 green, 5 red; 6 blue, 5 red, 5 green; 4 red, 2 blue, 5 green; 2 green, 6 blue, 5 red; 1 red, 2 green
|
||||
Game 84: 14 blue, 1 green; 9 green, 3 red, 1 blue; 5 green, 10 blue, 3 red; 9 green; 6 green, 18 blue; 2 red, 8 green
|
||||
Game 85: 1 blue, 7 red; 12 green, 7 red, 5 blue; 9 blue, 6 green, 7 red; 10 red, 7 green, 1 blue; 3 green, 6 blue, 7 red; 10 red, 16 blue
|
||||
Game 86: 9 red, 10 blue, 2 green; 2 red, 12 blue, 9 green; 11 green, 2 blue, 3 red
|
||||
Game 87: 1 blue, 7 red, 9 green; 1 red, 6 blue; 3 blue, 12 green
|
||||
Game 88: 1 blue, 4 green; 4 red, 13 blue, 1 green; 7 green, 4 blue, 3 red; 2 blue, 4 green, 5 red; 4 red, 7 green, 10 blue; 1 red, 7 green, 13 blue
|
||||
Game 89: 5 blue, 8 red, 1 green; 7 blue, 2 green, 7 red; 2 green, 8 blue, 11 red
|
||||
Game 90: 5 blue, 1 green, 11 red; 6 blue, 8 red; 2 red, 3 blue, 4 green; 2 green, 4 blue, 7 red; 3 blue, 8 red; 6 red, 3 blue, 1 green
|
||||
Game 91: 2 green, 13 red, 9 blue; 12 blue, 6 green; 14 green, 10 blue, 3 red; 13 blue, 7 green, 5 red; 1 green, 9 blue, 14 red; 10 green, 8 blue, 17 red
|
||||
Game 92: 10 green, 3 red, 17 blue; 13 red, 7 green, 15 blue; 9 blue, 8 red, 4 green; 1 blue, 8 red; 9 red, 1 green, 19 blue
|
||||
Game 93: 1 blue, 7 green, 4 red; 2 blue, 8 green; 10 red, 10 green, 1 blue; 10 green, 2 blue; 3 red, 3 blue
|
||||
Game 94: 5 red, 8 green, 14 blue; 4 red, 7 green, 20 blue; 11 blue, 4 red, 13 green; 18 blue, 1 red, 3 green
|
||||
Game 95: 5 red, 8 green, 11 blue; 12 green, 5 blue; 4 blue, 14 green; 7 green, 9 blue, 5 red; 3 red, 4 green, 7 blue; 3 red, 12 blue, 3 green
|
||||
Game 96: 10 red, 12 blue, 9 green; 4 green, 8 blue, 4 red; 8 blue, 3 red, 4 green; 6 green, 10 red; 2 blue, 3 green, 15 red; 12 red, 2 green, 2 blue
|
||||
Game 97: 13 green, 1 blue; 9 green, 1 red, 1 blue; 6 blue, 10 green; 1 red, 6 blue, 11 green
|
||||
Game 98: 2 blue, 14 green, 2 red; 7 green, 1 blue; 1 blue, 1 red, 3 green; 2 red, 1 blue, 15 green; 1 blue, 2 red, 10 green
|
||||
Game 99: 3 green, 8 red, 7 blue; 6 red, 13 blue; 12 red, 4 green, 4 blue; 12 red, 8 green, 3 blue; 11 blue, 11 red, 4 green
|
||||
Game 100: 2 red, 13 blue, 1 green; 1 green, 12 blue; 1 red, 5 blue, 1 green; 3 blue, 3 red
|
61
2023/03/03.py
Normal file
61
2023/03/03.py
Normal file
|
@ -0,0 +1,61 @@
|
|||
from re import finditer
|
||||
from collections import defaultdict
|
||||
from math import prod
|
||||
|
||||
with open("input.txt") as f:
|
||||
lines = f.read().split("\n")
|
||||
|
||||
### part 1
|
||||
|
||||
symbols = {
|
||||
(i,j)
|
||||
for i, line in enumerate(lines)
|
||||
for j, c in enumerate(line)
|
||||
if c not in "1234567890."
|
||||
}
|
||||
|
||||
part_numbers = []
|
||||
|
||||
for i, line in enumerate(lines):
|
||||
for match in finditer(r"\d+", line):
|
||||
j1, j2 = match.span()
|
||||
number = int(match[0])
|
||||
window = {
|
||||
(i+x, j+y)
|
||||
for x in (-1, 0, 1)
|
||||
for y in (-1, 0, 1)
|
||||
for j in range(j1, j2)
|
||||
}
|
||||
for _ in window & symbols:
|
||||
part_numbers.append(number)
|
||||
|
||||
part1 = sum(part_numbers)
|
||||
print(part1)
|
||||
|
||||
### part 2
|
||||
|
||||
potential_gears = {
|
||||
(i,j)
|
||||
for i, line in enumerate(lines)
|
||||
for j, c in enumerate(line)
|
||||
if c == "*"
|
||||
}
|
||||
|
||||
parts = defaultdict(list)
|
||||
|
||||
for i, line in enumerate(lines):
|
||||
for match in finditer(r"\d+", line):
|
||||
j1, j2 = match.span()
|
||||
number = int(match[0])
|
||||
window = {
|
||||
(i+x, j+y)
|
||||
for x in (-1, 0, 1)
|
||||
for y in (-1, 0, 1)
|
||||
for j in range(j1, j2)
|
||||
}
|
||||
for cell in window & potential_gears:
|
||||
parts[cell].append(number)
|
||||
|
||||
gear_ratios = (prod(p) for p in parts.values() if len(p) == 2)
|
||||
part2 = sum(gear_ratios)
|
||||
print(part2)
|
140
2023/03/input.txt
Normal file
140
2023/03/input.txt
Normal file
|
@ -0,0 +1,140 @@
|
|||
.........................3.......................................94...............806....................596.........793...........186......
|
||||
.../..........*574.587..*........161......904.......412.........*.................*.................................=.....637.%......*......
|
||||
..614..831..33.....*...........@....*398..&.....690*............183.........503..916..790................................*.....256....632...
|
||||
.........*.................332..374......................%184...........467..........*....969.632.......26....457......440.........@........
|
||||
..........535...541=........*.......696..@..323..................93=.......*.......30......*....*......-........+.222$.......458.817....66..
|
||||
....*.......................885.....*...123.=...641...&188..577.......339..688.........287.684..219.........................+...........*...
|
||||
...61........397...#386...=........313........-...&............*......*................@.............../.........621+....................169
|
||||
..............*.........34..................934..........17..168..320..263.........412.......$......966.....................303.....554.....
|
||||
...............353.447.......@.....251............54....*........#.............149....*...871..964.................714.....*....403...*.....
|
||||
...805......$......*.......632.....#...+514.944.....*....48..........*133.959.*....814...........-.521...........................*.....398..
|
||||
..../.......906.289...238.....................*................772........*...591......260.122......*........309...677...357.....790........
|
||||
........#................/.........450.....594.................*.......705............*....&.....676...@954.%....@....&.*...................
|
||||
.....310..928...+.............488.*.............790.........286..982.........416*944..103.........................351...519...705...........
|
||||
..............872.....+........*..820.....5....*.....529.........*...........................@..884......356*449................*..596......
|
||||
...................780......507.........$..*...936.............406...........*560..704....931...+....618..................%243.817...*......
|
||||
.386.....937.+904......*.............540...320............702.............118.........*............../.....445.....291.............899......
|
||||
........*...........930............*......................&......204...............243....*948.....*..........*...*.......512$..............
|
||||
......956....................$..788.487...........894.955..............................479.......709.........57....374................930...
|
||||
............/534..260*33..680...............324...*....*......574......219................................................../934.......-....
|
||||
..261...........................*813....=...*..........378......&....-..%...198............................885.........666..................
|
||||
...*....../........905$......706......281...314...642......701....736.......*.................................*..........*...532............
|
||||
..235..400....670.........-........................../......................849...204...197..646...............548.......61.*.........538...
|
||||
.............*.............927....340...........641..............................&......*...*.........137..144...............513............
|
||||
..400./285...16.......704............*896..836.....*..........738......102.&190..........89.137............*...$582....................&....
|
||||
...*.............763...#....541....................629...........*646.............295............368@....&..62........990...@428........955.
|
||||
....218...650.....*.........%................269............669...........709.......+..810.............52........447...@.........784........
|
||||
.............=.....313.............*........+..........444....*.%.........................-.....225.......684...*.........../107...*........
|
||||
..66...643.......................87...770.........=.......@.122.495.......177.....226.974.........*.580..*......921....216*.........724.....
|
||||
...*..*....................328.........../...460.325.....................+...........*.........198.....-.316...............912..............
|
||||
..882..421.......%766.........*..............................978*..........124.110.......$.....................467..............780.........
|
||||
...........732.........531.....439...%...........................230..........*....396..126........................508...........*..........
|
||||
............/..........*.............401..69.........$.................630............*.....114.......959...81.............515..664......43.
|
||||
......-............491..929.363*.............178..686.....546...................628...4.......%......+..............106...*.........*.......
|
||||
...456....154..659...+..........111.*...........-.........*...............66.%...*......%...................583../1.*.....206.......439.....
|
||||
...........&...$..........548.......560................431......752......@...574.534....303...843../.................844....................
|
||||
.........%.....................320%.......871*.....647..........*....................89.............981.....................................
|
||||
.92....832.....194.804.270.992................388..................%..583*..........*......255..730.............................138..121....
|
||||
.../................%..../..*.........58.106......*..373.........107......964...52.910.465..*..*........15...@.....*14.=847...........#.....
|
||||
......850...503......................*......*....411....*....674...............*...........532.124.......*.471..380.........................
|
||||
......*........*...390..641......99...997..688..............-......403...6.....156.....................320................*721..............
|
||||
.......471....555..*.....*......*.../................749...........*......*..........92*756................336.....241.581..................
|
||||
...................904..762..681..695.&639..903&......*.........753........936...................683-..........921..*......654....7.470.....
|
||||
.........16*494.....................................395..112...........=..................601..........+..........*.901.......*....*........
|
||||
................45...........77............$..636.........*...@593...670.........*796.270..*.......%..835.501...190......369.618.%..........
|
||||
......918..@....*....597...........758..550...$...895...688...................952.....*...761...176........%..............*......261........
|
||||
.....*......957.108.....+.....788................&..........221..........-308.....$..567..............562-.............963...833............
|
||||
....431.484...............35.+.....476.902.....................$.....495.......137...........880.199.......306+................*..725.......
|
||||
..........*..............*.....312...=.....50-...687...274..........................-........%.....*.................*......930...*....349..
|
||||
.....197...748.........639........=................*..*.........601*.......19....995..............470.....81.954..684....82......872...*....
|
||||
....=................................996........457..208.403........379...=...............193..........61...*...........*....37.........248.
|
||||
........155...................%........*.......................................689.211...+..........52*..................969..*....922......
|
||||
......*.........151......698.723.....175..10...........&............................*......852.486......442...900....934......60.....+......
|
||||
...103.896..142*.................430.....*..........-...743.........346&.................#..*...&........*.............*.........197........
|
||||
......................811........*..................813........802.............#333...167...916...856.....590..........658....-....-...563..
|
||||
..............838.275...-......529.............718.......502....*.................................*................284.....967..............
|
||||
...8....64.......*............................*....870......*.901......606.226...................534........773....*...............*43......
|
||||
....*.........57............338*142.......589.525....*...563...................745#......152..............%..*..298..206....................
|
||||
.....311.....=............................&.........309........630.....238................*.....345......701............*.....235....541....
|
||||
..................288...596...45...............953.............%.................@....379.746......-..%.........937....571...........=......
|
||||
161@................&......*.....47.=.........#......586.....&...281............764....*...............903.=810..-............837...........
|
||||
............................944..&...650.............&....918.......*..74...............369....437&............................*........777.
|
||||
......146...*..................................772*.................52...@......*895.@.......................371.......*76.....282..........
|
||||
......*.....278...696...........365....=334........786........879.=..........983.....877......@38........784..*.....255....&................
|
||||
.....132.............*.849........*........................%......783...553.................................&..663......297........419.440..
|
||||
.977...........839&.......=.393&.77....895*770............636..........................-803..353+......-.......................406*.....*...
|
||||
...*.=....376......................................69..........&.....116*949.......................186..295............%.................833
|
||||
261...853...*...81........993.191.810...731..........*575......636..................306...........*............129....691....999*.+712......
|
||||
...........319...&..........*..*....*....-..903*187....................890....875......@........557............&............................
|
||||
...........................840..403.255.............*.......138.........*......../.841..................257........499.........*........%...
|
||||
....430.....283.........................897......566.74..11...........705.641...................71*104.*...........*........197.782......290
|
||||
.....................605..........401..../....................690....................633...............957........739.......................
|
||||
.280*135...706...........709.........*................388..............813............*.....906....%..................606...................
|
||||
..............*.=965...............669.......944$..............................288.131.........-.183..594...............*..852..819.........
|
||||
.......#513.676......667...............93..........#.....$.......984.............#.....511.....................172.283.323............+426..
|
||||
......................%....826........$...........709..91...........*....919..........*......................./....*..........%.............
|
||||
....................$.......*....829........656......................400.*....................995.798.203..........107.994.....598.543......
|
||||
.........88.../..568.......194......*931.......*654..............*........533....................*.....*................+...................
|
||||
............844................491.......642..................839.603.125.....777...96..24.312.........272................671.394.....532...
|
||||
........85............/...@........*339..%......914...601.............+........*.....-....*......251.......29.....962.......+........@......
|
||||
...969...............916.265....630........791&....*.*..........$.........-166..307.................*........*543.&.............445.........
|
||||
..........811.457...................942.........755..944.......108..254...................322.....695....250................86..*........290
|
||||
..........+....@............-871.......*....602......................*.......................*........15.=...........274.......637..........
|
||||
.....................&810........894-..130...*..........................................315...76.....+...............*.....55...............
|
||||
..........................261.................894..582.....................................*............14....%...737.....*.........+.......
|
||||
..375.987........803..69.*........&....80#................685.....386.....................602....10.....%......65........932./..742.24......
|
||||
.........@.608..*......*........563........630..947.................*..........234...728..........*..........................92..*..........
|
||||
.....89.......+.550....43........................*....471......286..517.510....../......*..........966...795............$.........813.......
|
||||
.....*...651...............#.../573..569..........239.*..................*...........591.....935..........*...........536...536.............
|
||||
.....344.*.............681..90........*........./......43.........../...473.....................=.....679..545.................*843.........
|
||||
..........610.72.952..................850.......81.........733......895.....975..........132..........*........+898.......583.........656...
|
||||
790=.@179...........*........$...............................&..............@....935.......#...270..621...................#.............*...
|
||||
...................618....366...776..................143.......115.../..............*....*.......=...........306.........................369
|
||||
..............258................*...97........./967.-........*.....281...%............32.65........43.721.....*...........738...462*.......
|
||||
..606........*................713.....*..................513............114..746...............................86.............*......507....
|
||||
......402.....200...983...............746...335......938........488.........*......$.649.............................214.......493..........
|
||||
........*..............*32.....................*381..*....46.......*..205..16...100....*.444#....&..522........896..*...............411.....
|
||||
.......583........./................734..19..........795..*.....219...*.............804.......391......*............881................&....
|
||||
..............93....228............%.......*...985........936.......%..........=..+........................361.692................784.......
|
||||
.....219.................808..........755..........233............348.......463....147..............162.....*.......464$....................
|
||||
.......+....&...876...+....*..461$...$.............*.....550...........456.............826.330.........*997..657.................763........
|
||||
..../......143....%...87...............225..160*8.66.......+.....#623..*..................*.......612............709...679*........$........
|
||||
.....271..................#.....610.....................................799......*....866.....965...=.456........*.........530......./......
|
||||
.........10...#495..508.521.......+......746.........165.........-978.........638.145...*.576*...........*......926.............468...267...
|
||||
...........*........*.................&....$...........*...294..............$.........822.................535.........727.351...............
|
||||
...671..233.......903....541.....421..760..............299.*..............570..............540.......947.............*....*...802...........
|
||||
.....#........920.........*..455*...............942.........953..390..................365.....+.........*..........779...55.......293*......
|
||||
.................*........40......50..827........*..............*......................*..&.....-....374..............................80....
|
||||
......#...........636.274...............=.......72.............785...+596.............36..59...843............206..+625....%................
|
||||
......767.......*......*..........948..............*.345..................#..........................927..861....%........701...........64..
|
||||
.242.........476.363...936....347.*.........@.....41...............31...362.447...+902.....538........*.....*......+...........262&.........
|
||||
......#.........................&.517..*911..791...................*......................=....187.....926.800...54......108................
|
||||
.593..829..............................................166.524=.....................+381........+..*.................468*.............&.....
|
||||
..........766*......273...347.........347..........$...............836......436............843=....473..@.....=344...............573.675....
|
||||
..............279...%........*...786..........-..100.860..........*........*....421.....................414.................616...#.........
|
||||
...322....496............334.648..*....75...520......*......881....87....120....$..............*.............79.............*..........*....
|
||||
.....*......*.....................367.............704.............................&..........59.542.........*.......-992..53...811..192.556.
|
||||
...308....485...948.......................383*559........282.......15.........298.774.......................377...................*.........
|
||||
...............+.......348........................&.809.-.....249.......699../............740..650...584...............801*563..721..470....
|
||||
.........343..........................970...324.782................324..*...........380...*...*......*....-.........................*.......
|
||||
...627$....*...713#.....799...420........*....*......................*...24..........$..131.......148......245....94*781...%.......302......
|
||||
........698.........635.+...............644..593.%......784.....-....644......................409........&.....*...........952..............
|
||||
.999.................*............................627.........866..........418..........483*.....$....227...248.665...265.......222...&.....
|
||||
...*...............320...396......%......................77........186........*991..................*.................*...232....*....255...
|
||||
..363..35...=39............*.......831.......892.........@...=..+........268..................513..373.....875.......48....../....680.......
|
||||
.........................259.............374*...............137..482.432...&...276....132........*.....798...&.................16...........
|
||||
..669*246.......................491.............+...+..492...........................*.........=..603.@..........849........................
|
||||
...............429.220......-......*..........928..304...*......177................741...482.204.........*.........+....=........36.........
|
||||
...218..449.......*..........214...620.................827.252..@...689...................*......598..460.473...........341.704../...434....
|
||||
......*....*548.....-679.149.................................%......*...371..........998..815...*...................................&.......
|
||||
.......403................=.........166............................741.....&........%...........329.............62..............*...........
|
||||
..706*......991*738..347.....571...*....983..........+..208...319...............406..................175#......*.................891........
|
||||
......392...........*...........*.409.....*........72......*.-.........233.......*...........................478.............256............
|
||||
...................559..................-.540..734........6....*.......-......771............398.729.............928#..+....................
|
||||
.....603.......472................%...892..............=....314.684.......712............206......+.....657.%..........844.584.456...=......
|
||||
......*..........*..#..........801...............738...524.................*........817.......+........*....57.............*..........749...
|
||||
648..799........517.999...............#...........$..+.....................742..516*....939=..694...945..................863...480..........
|
||||
..........700........................994....314......214....105.............................................#....137............*...522.....
|
||||
...153.....*.........685..283................*...151........*....#....232......$.......99.92...863....*.....567.....*.285.....69.....*......
|
||||
............205.........*..*..............275....*.........220...644...*....293.........$..%..*....337.91...............*.............963...
|
||||
.......................844.32......449..........932....................869....................77......................288...................
|
29
2023/04/04.py
Normal file
29
2023/04/04.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
with open("input.txt") as f:
|
||||
lines = f.readlines()
|
||||
|
||||
part1 = 0
|
||||
|
||||
for line in lines:
|
||||
_, card = line.split(": ")
|
||||
winning, yours = card.split(" | ")
|
||||
winning = {int(n) for n in winning.split()}
|
||||
yours = {int(n) for n in yours.split()}
|
||||
how_many_wins = len(winning & yours)
|
||||
worth = 2 ** (how_many_wins - 1) if how_many_wins >= 1 else 0
|
||||
part1 += worth
|
||||
|
||||
print(part1)
|
||||
|
||||
cards = [1]*len(lines)
|
||||
|
||||
for i, line in enumerate(lines):
|
||||
_, card = line.split(": ")
|
||||
winning, yours = card.split(" | ")
|
||||
winning = {int(n) for n in winning.split()}
|
||||
yours = {int(n) for n in yours.split()}
|
||||
how_many_wins = len(winning & yours)
|
||||
for n in range(i+1, i+1+how_many_wins):
|
||||
cards[n] += 1 * cards[i]
|
||||
|
||||
part2 = sum(cards)
|
||||
print(part2)
|
218
2023/04/input.txt
Normal file
218
2023/04/input.txt
Normal file
|
@ -0,0 +1,218 @@
|
|||
Card 1: 9 32 7 82 10 36 31 12 85 95 | 7 69 23 9 32 22 47 10 95 14 24 71 57 12 31 59 36 68 2 82 38 80 85 21 92
|
||||
Card 2: 16 35 95 22 59 82 76 60 19 88 | 63 91 16 35 26 82 95 51 53 60 94 59 56 73 28 76 12 44 22 62 8 7 19 38 88
|
||||
Card 3: 1 88 48 52 70 19 11 78 94 28 | 19 92 70 18 34 78 83 8 82 87 3 97 66 31 63 17 69 4 75 94 52 54 77 24 45
|
||||
Card 4: 72 14 2 92 65 62 16 28 55 91 | 73 8 35 4 9 86 83 51 47 53 3 7 15 52 96 54 49 88 85 30 6 59 81 33 99
|
||||
Card 5: 60 61 24 41 30 77 94 50 38 75 | 47 93 82 98 96 5 9 53 17 6 10 21 2 91 80 4 14 71 29 69 62 1 7 87 88
|
||||
Card 6: 21 4 16 41 58 68 66 22 64 94 | 72 69 60 62 34 21 75 66 38 25 63 17 81 23 71 73 78 64 89 24 26 56 68 79 51
|
||||
Card 7: 10 90 4 56 14 26 7 23 57 19 | 62 10 60 51 46 34 23 49 44 8 53 50 2 56 21 81 69 89 87 91 16 63 38 36 22
|
||||
Card 8: 36 27 38 47 16 57 96 31 43 76 | 62 99 87 68 76 44 49 63 47 16 58 81 84 48 45 88 64 34 54 42 72 24 26 12 50
|
||||
Card 9: 92 9 35 2 26 97 79 88 43 45 | 89 96 62 1 39 98 72 66 28 78 64 68 42 63 15 25 22 60 31 91 69 94 21 81 29
|
||||
Card 10: 40 17 3 9 47 23 82 90 13 87 | 51 2 36 85 34 27 11 53 71 38 8 57 58 17 24 20 54 23 31 37 35 70 9 83 99
|
||||
Card 11: 2 21 9 53 45 19 91 74 23 25 | 29 26 91 39 58 18 96 53 31 63 46 21 32 54 22 66 17 25 94 74 4 41 77 35 23
|
||||
Card 12: 13 84 68 67 99 97 73 49 86 65 | 97 49 35 40 42 80 45 11 94 53 99 29 72 73 23 77 62 3 38 90 83 68 59 20 95
|
||||
Card 13: 70 9 7 11 95 46 69 91 22 71 | 30 56 31 90 91 69 17 71 25 46 66 9 62 89 70 98 36 57 45 94 21 40 75 95 24
|
||||
Card 14: 54 37 89 14 18 1 60 34 7 80 | 83 98 11 85 50 35 61 29 18 67 33 63 32 92 68 65 95 56 74 96 27 73 81 47 15
|
||||
Card 15: 25 82 90 66 50 40 15 43 32 62 | 49 77 96 36 89 70 50 29 26 1 20 71 37 30 9 91 7 52 5 82 51 55 72 38 12
|
||||
Card 16: 26 46 79 29 52 10 87 75 45 49 | 52 25 2 42 73 44 58 85 10 37 4 17 8 86 95 65 35 31 16 12 99 51 70 80 45
|
||||
Card 17: 17 96 64 38 73 11 32 24 25 65 | 83 37 25 81 59 18 4 15 98 87 2 1 3 60 5 53 67 46 6 20 79 84 95 50 62
|
||||
Card 18: 48 50 90 87 40 71 59 61 30 85 | 85 19 13 39 76 55 72 29 5 84 22 91 67 63 74 73 61 90 62 42 30 9 69 87 48
|
||||
Card 19: 4 99 93 55 22 37 41 75 32 79 | 95 7 65 50 40 49 42 64 89 1 59 33 9 53 20 44 23 98 60 30 39 12 66 84 45
|
||||
Card 20: 14 34 73 91 30 48 35 44 50 8 | 48 33 35 40 65 29 9 42 18 79 43 89 92 68 75 97 87 69 85 80 98 14 6 25 76
|
||||
Card 21: 33 15 83 71 94 61 87 54 36 72 | 56 52 83 46 32 99 36 67 12 47 38 13 14 2 7 26 20 63 90 40 37 6 84 42 92
|
||||
Card 22: 66 45 79 71 92 57 47 43 62 9 | 45 89 9 5 53 84 80 19 77 61 68 40 98 23 56 36 6 60 93 1 11 49 71 52 29
|
||||
Card 23: 29 53 13 4 76 62 25 94 82 98 | 24 45 85 59 41 11 13 78 54 67 74 21 50 75 16 37 63 86 14 26 92 31 57 33 40
|
||||
Card 24: 16 66 90 39 24 92 53 76 52 31 | 21 7 57 65 58 2 10 61 35 73 68 95 84 43 12 18 76 71 83 15 82 88 30 55 5
|
||||
Card 25: 9 45 17 42 64 93 54 33 77 62 | 35 81 82 18 47 92 2 20 95 1 6 58 40 73 43 37 15 48 23 75 26 13 50 63 79
|
||||
Card 26: 1 99 92 73 57 29 18 97 34 5 | 82 89 61 3 95 39 14 98 15 87 45 48 49 60 22 28 65 16 9 58 4 53 38 56 51
|
||||
Card 27: 87 45 35 93 62 1 66 91 6 3 | 51 60 96 84 35 91 6 28 32 40 3 57 29 90 73 12 81 89 31 69 97 66 70 36 18
|
||||
Card 28: 72 89 51 45 10 21 84 23 6 94 | 26 45 23 13 68 51 89 66 34 99 83 70 44 56 72 57 73 94 30 84 61 80 85 29 6
|
||||
Card 29: 58 80 96 47 13 44 71 38 55 54 | 58 35 3 61 81 96 71 44 43 14 36 54 20 69 63 13 75 28 80 18 73 11 38 55 47
|
||||
Card 30: 44 17 81 16 13 65 85 60 34 46 | 60 71 72 13 10 51 65 56 34 59 80 75 18 64 35 92 58 50 97 46 81 37 44 16 17
|
||||
Card 31: 84 55 99 95 42 83 26 33 43 87 | 78 59 45 26 28 94 63 17 2 73 38 84 96 34 99 19 75 65 8 92 58 20 11 82 57
|
||||
Card 32: 57 67 49 76 15 84 27 39 24 14 | 20 15 21 14 67 97 76 19 17 38 23 41 24 32 27 57 26 81 99 49 34 96 9 84 39
|
||||
Card 33: 96 76 23 95 5 37 8 62 65 63 | 59 23 67 51 40 68 70 38 8 36 41 53 62 65 96 76 66 57 37 5 46 34 95 19 69
|
||||
Card 34: 52 13 90 81 94 62 91 40 53 42 | 82 90 35 13 55 95 93 74 44 70 89 87 62 5 80 22 53 94 21 77 54 20 18 52 40
|
||||
Card 35: 1 75 37 64 17 12 57 18 58 3 | 65 74 89 12 72 64 93 23 51 73 44 80 21 7 35 87 42 82 25 53 71 38 79 43 61
|
||||
Card 36: 15 49 18 30 20 90 69 3 60 59 | 14 63 53 86 5 62 69 52 21 9 18 48 13 34 2 67 60 55 10 98 15 81 88 83 94
|
||||
Card 37: 48 39 43 81 40 59 70 22 62 61 | 48 14 79 26 12 56 3 89 66 17 87 9 43 27 73 23 47 1 18 97 96 65 59 42 6
|
||||
Card 38: 35 94 15 31 22 55 8 2 11 45 | 78 53 41 13 37 64 36 90 26 97 16 99 57 54 20 59 82 24 58 81 14 74 95 93 79
|
||||
Card 39: 74 25 37 8 53 36 86 68 91 79 | 48 45 24 80 20 49 86 42 47 28 17 22 93 38 35 34 85 21 18 14 97 61 27 41 88
|
||||
Card 40: 41 16 26 14 79 27 62 55 80 99 | 52 83 5 38 69 11 89 6 35 58 4 74 99 97 63 30 90 33 46 60 95 59 22 76 40
|
||||
Card 41: 57 77 60 66 35 4 13 89 14 40 | 78 4 97 58 9 65 94 44 89 95 80 7 47 59 37 26 19 76 91 18 45 6 56 3 90
|
||||
Card 42: 83 19 31 59 78 54 22 16 44 88 | 53 84 90 39 56 29 44 55 58 13 72 80 49 6 28 97 25 18 99 89 40 43 10 33 71
|
||||
Card 43: 81 94 73 42 85 45 28 61 88 19 | 84 86 36 44 51 40 82 72 39 57 13 53 87 83 38 76 63 35 47 15 2 95 79 26 1
|
||||
Card 44: 78 28 92 59 51 37 61 55 58 98 | 49 6 30 89 61 98 58 78 31 28 48 92 60 56 59 51 29 14 37 63 38 55 24 42 21
|
||||
Card 45: 23 59 74 5 81 53 3 93 54 68 | 68 15 38 45 66 61 87 54 3 81 74 43 5 25 59 23 93 78 44 72 53 52 89 97 48
|
||||
Card 46: 79 17 74 72 84 44 3 59 66 76 | 3 44 95 84 66 79 62 97 63 48 76 10 75 72 6 17 74 94 80 59 30 12 20 83 87
|
||||
Card 47: 98 18 11 52 66 14 68 89 80 19 | 66 67 23 52 80 89 95 44 60 11 55 34 18 59 19 53 98 82 14 38 63 65 90 68 77
|
||||
Card 48: 84 64 87 81 54 61 31 57 53 79 | 99 74 9 45 54 14 96 38 7 82 4 17 43 69 62 83 66 81 41 86 55 75 30 10 21
|
||||
Card 49: 95 4 89 38 67 71 70 75 35 39 | 39 71 22 80 75 43 35 89 17 38 4 29 7 69 94 63 85 6 5 95 70 58 67 50 68
|
||||
Card 50: 18 59 9 34 83 68 80 21 61 78 | 10 96 19 11 74 15 26 8 65 56 35 79 32 44 55 36 94 95 53 86 3 27 88 67 85
|
||||
Card 51: 17 79 69 92 39 51 46 81 14 21 | 49 92 48 29 47 74 76 81 69 85 86 98 73 43 24 45 21 84 25 10 17 44 1 31 28
|
||||
Card 52: 39 31 1 21 7 27 85 59 35 67 | 84 29 91 89 70 5 94 23 21 65 71 12 26 41 15 11 61 73 14 52 76 9 16 24 75
|
||||
Card 53: 93 21 1 18 54 87 35 98 9 48 | 44 30 79 82 23 43 51 46 34 35 9 75 12 60 77 36 27 86 32 47 85 98 87 1 13
|
||||
Card 54: 51 95 69 73 66 61 9 28 75 24 | 42 28 87 69 24 19 56 98 57 66 95 73 9 51 61 50 64 75 76 27 86 1 29 30 79
|
||||
Card 55: 73 99 56 8 10 97 26 64 52 2 | 79 47 80 89 5 53 37 63 41 48 12 96 1 25 84 70 9 76 58 75 72 31 20 17 46
|
||||
Card 56: 71 43 8 50 95 1 2 77 45 81 | 43 85 24 59 46 15 36 81 3 50 9 45 95 77 71 12 65 1 60 2 8 5 7 20 88
|
||||
Card 57: 10 76 62 41 58 67 80 39 9 21 | 58 10 42 60 37 27 51 1 25 18 56 23 67 88 62 50 87 80 9 54 41 81 26 21 7
|
||||
Card 58: 41 80 74 71 10 63 58 26 38 21 | 63 66 80 65 12 68 72 10 20 91 88 44 11 70 36 71 3 61 74 7 21 41 67 43 38
|
||||
Card 59: 41 60 82 94 90 7 76 69 28 95 | 35 69 77 9 81 65 11 90 19 22 36 75 12 52 98 55 92 79 14 67 47 83 39 74 94
|
||||
Card 60: 44 82 36 55 94 72 99 70 6 50 | 35 29 95 62 97 11 33 92 19 91 10 54 56 53 98 1 39 16 64 52 73 66 30 4 43
|
||||
Card 61: 55 19 82 18 24 91 99 36 54 98 | 68 58 99 51 79 1 7 50 4 28 59 8 19 14 10 40 57 34 60 82 88 47 52 80 54
|
||||
Card 62: 14 20 49 2 94 59 33 72 86 34 | 35 33 54 94 5 14 7 6 60 41 40 38 20 26 72 22 49 13 83 98 36 3 51 82 74
|
||||
Card 63: 73 78 8 64 52 7 86 30 98 27 | 95 4 48 24 45 72 60 31 25 18 59 90 51 14 50 65 2 16 3 33 94 11 93 6 32
|
||||
Card 64: 26 71 76 85 70 80 81 61 58 77 | 87 10 24 38 4 40 42 96 47 63 99 7 20 68 78 66 53 12 46 90 75 59 60 88 5
|
||||
Card 65: 26 37 35 44 45 10 13 85 6 8 | 39 80 93 79 60 89 58 96 44 85 59 94 24 23 48 86 22 42 6 5 25 57 43 90 21
|
||||
Card 66: 62 45 67 18 36 84 66 90 98 95 | 1 71 68 54 76 48 42 35 19 94 39 69 80 17 41 20 93 59 29 30 15 37 14 12 88
|
||||
Card 67: 33 10 5 94 72 86 84 80 19 85 | 76 26 61 3 93 17 74 42 23 16 18 2 14 46 1 38 72 13 28 29 91 21 12 7 48
|
||||
Card 68: 70 73 2 79 88 36 35 13 16 6 | 75 47 30 7 89 78 39 69 96 91 19 83 61 4 10 77 81 44 90 50 29 38 32 53 60
|
||||
Card 69: 60 20 40 38 6 49 5 85 84 80 | 38 12 59 94 27 15 85 17 65 69 82 36 7 43 47 99 5 87 61 77 4 83 81 90 40
|
||||
Card 70: 85 96 73 11 22 33 9 61 37 42 | 27 70 96 74 9 75 60 88 22 86 13 63 37 80 83 73 42 85 17 33 35 82 61 65 11
|
||||
Card 71: 41 47 37 52 73 97 77 69 5 45 | 47 95 78 41 74 54 5 88 63 87 34 18 37 85 26 73 52 50 28 77 97 86 1 69 45
|
||||
Card 72: 90 88 85 71 5 59 65 52 30 13 | 5 29 68 62 24 12 90 30 85 18 76 25 40 60 77 14 19 33 61 88 70 17 95 73 2
|
||||
Card 73: 44 98 60 49 51 9 21 88 87 70 | 63 3 46 65 49 70 44 7 74 88 35 45 17 24 51 60 25 9 98 87 21 10 81 83 61
|
||||
Card 74: 31 23 80 11 13 72 63 57 29 70 | 57 28 70 45 3 94 5 80 14 11 2 29 20 47 72 63 10 31 66 19 79 38 74 13 23
|
||||
Card 75: 82 54 62 8 30 7 88 20 71 85 | 83 65 74 44 79 3 29 64 51 35 98 56 41 22 27 13 26 34 39 59 24 4 33 14 63
|
||||
Card 76: 16 24 87 73 17 71 69 26 4 76 | 59 71 32 3 56 64 24 41 66 26 12 36 87 65 73 4 75 16 8 17 57 69 49 46 76
|
||||
Card 77: 98 57 96 56 39 12 69 37 54 65 | 21 48 87 97 29 27 56 31 18 88 7 79 70 35 64 38 91 15 14 43 3 84 20 85 32
|
||||
Card 78: 5 62 37 51 73 78 18 64 42 48 | 35 82 85 62 23 66 3 14 19 64 79 18 93 53 69 58 96 63 90 24 41 65 94 40 95
|
||||
Card 79: 8 73 46 15 99 29 96 34 59 75 | 48 65 57 99 63 33 37 73 79 28 72 56 34 3 25 75 70 95 58 27 43 30 54 8 87
|
||||
Card 80: 91 81 96 55 44 82 31 23 11 74 | 24 51 96 77 40 28 56 44 54 89 78 38 76 74 17 92 3 23 36 63 80 65 55 7 11
|
||||
Card 81: 81 77 30 26 93 28 97 10 84 88 | 57 28 36 33 54 11 96 58 18 99 30 1 5 79 12 24 56 93 25 78 10 40 76 84 81
|
||||
Card 82: 31 67 3 90 28 76 55 6 29 26 | 75 34 82 73 38 17 67 91 86 40 43 45 42 60 37 63 55 87 93 84 58 78 80 20 11
|
||||
Card 83: 8 97 43 88 62 34 68 50 82 71 | 8 68 2 96 85 36 10 14 35 32 73 16 26 29 67 60 37 89 52 98 74 22 78 1 59
|
||||
Card 84: 77 97 5 33 12 73 90 57 31 19 | 97 46 48 57 4 10 94 85 59 31 17 60 81 49 62 58 25 8 79 78 50 36 55 51 32
|
||||
Card 85: 74 85 97 19 76 99 21 47 20 50 | 50 69 72 39 45 26 13 7 92 21 63 58 84 9 94 53 43 81 89 49 62 32 70 82 10
|
||||
Card 86: 81 96 82 76 97 77 40 3 68 98 | 4 26 69 88 43 15 78 64 79 92 62 30 49 89 37 59 95 63 58 98 75 99 80 51 6
|
||||
Card 87: 80 73 51 20 41 67 31 66 97 27 | 16 59 75 86 24 83 95 44 85 13 11 77 70 14 2 39 88 89 93 55 52 6 53 94 98
|
||||
Card 88: 18 38 66 87 56 25 46 63 37 15 | 86 22 17 96 10 49 80 21 15 77 66 3 20 95 36 87 16 74 46 26 79 76 38 43 6
|
||||
Card 89: 51 55 41 3 20 60 99 70 23 43 | 51 81 99 32 50 96 41 53 80 76 43 3 83 65 20 46 70 60 38 35 57 55 7 74 23
|
||||
Card 90: 94 19 23 81 44 15 74 73 22 71 | 83 66 54 43 23 55 69 81 85 71 62 96 19 86 78 22 15 58 94 74 44 73 57 17 8
|
||||
Card 91: 72 77 21 83 82 75 1 56 99 43 | 42 77 56 90 68 96 39 72 83 97 21 17 66 70 49 43 69 63 82 75 47 99 87 11 1
|
||||
Card 92: 62 58 71 78 38 80 52 94 48 92 | 11 7 56 4 77 59 62 49 14 94 52 80 92 64 71 58 13 1 48 12 78 9 17 38 35
|
||||
Card 93: 98 45 63 46 48 97 91 29 90 15 | 95 31 41 15 43 80 24 44 75 83 30 87 98 12 27 36 74 16 86 35 33 85 54 94 78
|
||||
Card 94: 27 60 36 26 76 65 86 89 10 54 | 80 78 95 36 88 82 6 46 73 58 22 40 12 50 76 14 65 26 70 60 54 17 27 89 93
|
||||
Card 95: 18 62 66 98 24 16 80 58 53 97 | 93 9 15 61 51 19 81 8 21 36 6 71 80 13 52 87 5 37 86 75 68 60 97 54 10
|
||||
Card 96: 6 55 40 79 3 67 13 96 91 34 | 54 13 63 17 52 72 7 81 82 69 6 91 90 57 14 2 8 74 75 40 96 21 3 38 55
|
||||
Card 97: 40 33 3 59 8 88 99 14 41 74 | 99 48 41 35 69 64 18 50 3 96 40 8 36 63 17 90 59 33 49 26 88 93 74 27 14
|
||||
Card 98: 63 44 52 11 32 46 62 19 30 6 | 71 51 48 70 82 44 8 60 92 21 77 62 53 95 31 73 80 96 55 34 86 97 76 88 6
|
||||
Card 99: 66 46 22 44 94 50 68 59 25 75 | 40 46 56 32 64 89 80 22 60 87 77 9 59 25 75 38 44 48 8 50 94 68 66 72 20
|
||||
Card 100: 15 8 13 93 80 58 66 10 76 32 | 58 68 34 54 53 79 69 18 71 33 66 13 92 77 93 40 80 94 76 75 15 10 83 8 70
|
||||
Card 101: 22 25 48 97 63 81 7 84 60 43 | 58 91 10 85 59 76 16 36 96 39 42 50 72 34 86 61 67 11 79 27 83 73 98 57 70
|
||||
Card 102: 1 35 10 28 59 2 74 45 25 13 | 47 56 90 19 20 95 64 72 88 28 27 18 31 7 55 61 48 2 10 81 70 25 96 73 74
|
||||
Card 103: 28 5 31 23 76 83 25 94 35 18 | 10 85 72 18 23 60 17 50 30 76 35 83 8 42 65 4 34 84 28 39 5 98 25 94 92
|
||||
Card 104: 32 45 61 94 5 44 3 15 77 87 | 37 15 84 94 19 33 11 51 1 81 16 61 87 68 74 97 62 88 8 98 45 44 92 70 83
|
||||
Card 105: 32 89 96 15 67 83 9 64 60 44 | 76 38 75 54 44 67 3 88 89 46 15 40 96 19 7 36 55 64 1 83 78 72 31 18 21
|
||||
Card 106: 78 7 12 67 54 29 76 66 17 35 | 53 19 78 86 36 33 84 63 16 43 64 46 31 58 66 11 39 38 76 14 49 94 47 67 56
|
||||
Card 107: 95 91 53 27 12 51 29 1 36 9 | 43 70 74 89 52 12 82 97 96 4 45 37 14 68 15 58 63 51 59 34 50 81 3 6 83
|
||||
Card 108: 68 79 91 36 9 55 21 81 2 17 | 26 21 63 91 27 45 73 92 29 24 74 57 43 61 4 82 20 50 84 88 54 89 81 8 15
|
||||
Card 109: 68 37 88 22 26 53 67 43 62 35 | 24 19 46 44 49 7 17 51 21 81 96 30 59 3 72 99 71 58 22 28 60 52 43 65 86
|
||||
Card 110: 95 66 14 29 71 44 35 73 15 63 | 2 87 82 39 55 92 33 98 51 20 16 89 24 12 64 8 85 41 37 77 42 45 22 48 52
|
||||
Card 111: 83 21 90 50 91 82 73 19 41 25 | 47 74 77 86 84 33 3 99 30 93 37 98 42 59 24 12 69 36 61 68 55 17 32 53 18
|
||||
Card 112: 72 29 25 73 15 93 4 36 78 56 | 35 80 62 12 88 59 30 17 51 76 70 64 21 42 79 31 96 83 63 57 1 68 52 53 75
|
||||
Card 113: 39 52 17 98 34 9 72 53 47 51 | 70 72 17 48 83 98 64 9 15 94 57 68 87 14 27 55 40 38 53 8 47 51 16 28 67
|
||||
Card 114: 18 1 14 61 17 28 24 34 63 5 | 62 64 68 67 8 88 18 73 28 17 14 34 65 95 47 1 31 5 24 99 61 89 63 42 80
|
||||
Card 115: 31 76 94 50 65 52 21 53 5 43 | 93 38 97 35 2 82 1 45 65 50 43 59 21 27 94 5 31 53 61 52 10 76 99 44 47
|
||||
Card 116: 2 13 64 10 14 29 33 55 19 6 | 91 68 22 47 5 65 23 64 20 18 70 21 45 1 42 31 59 17 61 58 30 73 81 14 2
|
||||
Card 117: 52 22 10 59 25 80 48 28 99 82 | 93 52 25 19 94 80 85 28 46 90 74 65 48 99 22 66 87 49 83 57 3 10 59 78 67
|
||||
Card 118: 22 98 56 42 95 5 62 50 26 71 | 42 50 56 98 41 92 71 69 60 22 59 64 62 27 30 26 21 87 2 51 40 89 24 95 5
|
||||
Card 119: 25 61 90 69 15 3 33 14 59 21 | 61 30 25 44 18 90 74 64 33 73 51 3 14 60 45 82 23 69 46 59 27 21 49 15 7
|
||||
Card 120: 99 83 2 21 85 47 45 34 58 31 | 18 34 47 91 58 97 40 60 71 85 24 45 83 21 10 53 56 99 32 38 77 31 2 79 23
|
||||
Card 121: 91 63 88 9 66 25 48 94 44 51 | 42 24 19 83 43 9 25 28 18 88 91 35 63 69 66 55 3 14 54 75 80 51 73 94 44
|
||||
Card 122: 4 32 37 25 8 13 3 67 39 5 | 94 99 11 5 93 60 29 37 45 28 3 8 32 66 98 25 36 97 34 96 80 67 63 71 31
|
||||
Card 123: 93 89 1 53 15 98 21 26 82 42 | 17 25 40 63 15 21 28 42 30 46 13 53 81 74 93 85 98 57 39 65 60 38 12 36 92
|
||||
Card 124: 14 12 90 59 56 54 94 80 51 63 | 5 7 14 33 86 94 34 3 80 25 40 56 90 65 63 59 71 67 54 12 82 66 46 51 44
|
||||
Card 125: 52 37 74 28 4 96 92 40 3 64 | 23 44 64 71 22 34 35 17 10 74 93 37 40 42 52 96 53 91 92 70 28 4 75 3 12
|
||||
Card 126: 40 70 12 23 61 99 47 96 77 24 | 58 32 96 66 44 21 83 84 43 11 94 13 99 62 87 1 31 10 71 53 39 14 95 97 56
|
||||
Card 127: 9 40 39 4 19 3 25 96 5 95 | 86 9 31 25 14 19 40 55 5 84 66 4 28 3 88 95 27 1 34 52 97 29 12 96 15
|
||||
Card 128: 56 35 9 95 93 66 38 85 39 65 | 92 14 12 79 86 95 66 1 38 93 6 94 77 2 34 62 56 87 46 39 65 72 40 10 45
|
||||
Card 129: 77 19 10 24 25 68 67 5 38 29 | 73 59 50 39 37 24 58 56 70 72 74 3 20 66 26 92 71 29 83 15 96 79 2 28 27
|
||||
Card 130: 19 42 20 87 76 41 83 47 99 51 | 85 27 63 1 55 9 49 28 25 14 76 51 36 34 53 57 73 12 58 66 78 16 22 84 26
|
||||
Card 131: 33 82 49 90 74 24 53 48 12 51 | 48 29 52 12 31 99 81 33 80 76 37 32 96 28 8 51 79 56 26 62 53 10 15 42 58
|
||||
Card 132: 51 90 31 49 77 64 20 76 91 45 | 77 93 27 16 45 53 57 84 63 42 25 44 4 64 71 8 70 66 95 34 23 85 35 31 87
|
||||
Card 133: 76 84 3 16 25 79 35 8 50 60 | 32 97 7 51 49 12 37 54 59 60 27 87 40 64 38 78 8 53 43 39 81 66 68 44 18
|
||||
Card 134: 77 36 47 40 44 14 94 91 39 5 | 95 25 45 99 59 27 64 12 15 9 22 4 50 62 73 39 34 6 8 72 56 96 89 90 35
|
||||
Card 135: 33 49 25 71 39 75 30 16 46 55 | 94 82 64 10 16 73 79 68 4 12 1 87 6 53 34 98 66 99 78 59 58 2 36 77 52
|
||||
Card 136: 53 22 58 94 49 25 6 64 69 73 | 42 23 3 76 77 83 8 1 89 2 33 78 46 12 34 95 26 96 41 93 97 35 5 82 55
|
||||
Card 137: 64 25 86 72 6 39 48 95 73 62 | 52 4 29 18 11 84 79 87 19 32 96 71 61 35 17 15 44 27 68 70 98 45 22 51 85
|
||||
Card 138: 60 30 89 73 76 11 23 90 86 80 | 11 89 23 86 66 5 80 13 67 73 59 96 90 76 49 20 84 30 82 29 72 87 63 60 92
|
||||
Card 139: 82 6 17 76 72 5 70 45 90 7 | 12 50 25 41 9 16 29 20 63 70 28 10 53 90 76 5 7 82 17 15 45 93 72 97 6
|
||||
Card 140: 3 88 95 62 81 35 92 16 21 87 | 92 42 18 35 21 12 30 25 27 17 87 71 81 95 88 40 16 29 69 70 14 62 3 2 31
|
||||
Card 141: 2 36 5 53 22 30 40 94 84 52 | 86 67 38 32 90 33 18 26 13 2 96 49 25 74 83 31 54 42 52 36 97 55 63 44 47
|
||||
Card 142: 84 77 81 89 56 61 39 2 22 7 | 79 40 62 91 39 20 13 80 81 63 7 22 84 77 6 5 2 42 89 61 53 52 56 75 88
|
||||
Card 143: 90 86 6 75 67 76 18 41 36 55 | 25 7 30 21 40 65 47 42 77 34 53 60 97 10 49 39 45 57 8 94 83 93 32 80 98
|
||||
Card 144: 26 5 82 70 75 88 53 47 29 93 | 23 40 49 74 62 93 60 75 86 98 53 45 47 29 97 67 8 88 4 5 26 37 71 82 70
|
||||
Card 145: 8 62 96 13 21 82 42 54 41 61 | 87 13 23 96 29 27 6 14 53 75 5 24 31 60 90 12 82 51 64 65 70 58 9 74 47
|
||||
Card 146: 57 20 68 46 52 36 49 48 14 34 | 52 45 92 33 49 57 61 54 44 18 47 59 46 34 63 32 65 53 50 14 20 80 38 42 15
|
||||
Card 147: 47 86 79 34 64 91 57 21 1 89 | 14 79 31 91 44 11 89 75 40 97 81 92 63 73 21 49 93 86 64 22 35 8 13 99 57
|
||||
Card 148: 83 62 84 25 96 13 30 99 24 82 | 64 2 65 63 60 98 91 76 81 94 23 22 88 85 28 92 15 38 35 72 52 32 47 69 31
|
||||
Card 149: 62 32 13 59 96 78 11 73 34 52 | 89 73 13 1 52 24 71 83 53 97 62 85 78 20 17 11 59 96 74 19 32 29 34 43 9
|
||||
Card 150: 76 14 58 69 8 21 49 60 29 6 | 29 86 82 88 3 91 72 71 55 57 51 95 9 61 12 79 23 33 19 20 50 37 62 30 4
|
||||
Card 151: 68 93 22 66 81 77 16 75 47 34 | 47 76 34 52 25 68 9 26 29 66 37 57 10 54 99 46 77 95 81 93 53 13 97 22 7
|
||||
Card 152: 2 9 24 70 11 42 44 98 79 27 | 18 72 91 78 44 77 35 17 79 21 9 5 4 98 43 54 70 42 2 6 76 11 24 68 27
|
||||
Card 153: 36 28 10 9 69 25 87 50 77 11 | 7 54 25 40 85 33 15 20 87 71 96 99 77 53 94 9 67 28 69 32 26 18 63 29 43
|
||||
Card 154: 41 15 97 7 50 92 9 66 20 6 | 91 53 3 15 66 92 72 67 85 9 20 1 28 32 14 95 81 34 79 8 7 59 82 52 6
|
||||
Card 155: 8 1 15 14 44 81 89 37 55 43 | 76 62 83 79 37 24 56 30 34 58 45 64 23 41 84 71 14 22 60 27 18 9 42 54 85
|
||||
Card 156: 1 44 85 92 7 35 52 50 72 26 | 62 69 85 60 80 73 94 37 12 63 99 70 17 51 23 8 95 29 32 55 47 41 6 36 25
|
||||
Card 157: 12 49 19 14 28 64 17 76 34 8 | 33 87 95 61 84 55 86 19 92 44 3 42 24 96 94 36 38 13 10 51 15 81 27 75 67
|
||||
Card 158: 29 88 66 19 41 57 52 30 46 47 | 16 1 36 91 8 70 27 3 38 32 89 84 90 31 88 49 60 22 18 9 62 67 47 7 34
|
||||
Card 159: 99 87 7 36 67 23 14 92 52 82 | 93 41 76 15 8 63 50 40 30 85 92 48 1 99 87 53 46 70 34 5 44 79 16 35 17
|
||||
Card 160: 40 35 56 38 93 47 42 72 80 79 | 77 90 83 4 65 61 27 41 21 13 25 68 34 11 84 40 94 42 69 64 14 70 58 97 63
|
||||
Card 161: 57 54 92 91 51 37 93 55 59 41 | 2 78 35 85 23 41 74 33 8 21 72 94 63 90 95 64 71 12 65 27 38 18 19 9 60
|
||||
Card 162: 51 37 4 45 15 59 71 23 61 77 | 72 81 19 35 53 60 11 93 54 2 31 70 40 28 57 63 6 46 89 96 30 36 12 20 29
|
||||
Card 163: 52 53 7 23 29 89 86 43 97 77 | 79 18 34 45 80 61 30 41 68 7 52 89 8 49 29 86 67 17 81 98 97 78 26 48 70
|
||||
Card 164: 98 61 60 4 5 28 70 37 41 10 | 22 58 68 41 98 53 30 99 60 61 17 12 4 25 49 10 70 92 5 83 36 28 13 37 56
|
||||
Card 165: 16 12 15 73 22 31 20 63 42 95 | 26 53 40 17 97 15 8 25 78 46 44 45 54 39 61 23 51 11 90 95 2 35 68 24 18
|
||||
Card 166: 14 89 75 8 90 29 18 27 64 19 | 74 76 7 75 23 72 45 54 59 90 80 44 29 27 20 64 12 89 14 52 79 8 83 11 15
|
||||
Card 167: 16 78 33 67 66 63 69 59 36 94 | 89 70 42 47 92 34 14 69 37 83 19 25 57 36 3 44 77 26 73 85 18 59 13 65 76
|
||||
Card 168: 33 76 58 94 34 84 79 69 60 2 | 49 54 80 51 68 84 71 17 44 12 82 69 4 88 76 8 98 34 93 5 52 95 13 75 39
|
||||
Card 169: 2 63 48 44 25 75 51 36 29 52 | 24 84 56 37 17 60 74 36 77 48 62 32 16 2 80 41 15 35 88 72 30 58 20 49 12
|
||||
Card 170: 98 14 67 30 5 15 89 28 74 12 | 99 88 7 35 19 27 81 50 70 97 98 61 2 67 92 46 75 30 53 4 59 1 74 26 45
|
||||
Card 171: 4 26 44 61 5 75 76 20 56 33 | 34 97 62 70 83 35 23 78 13 3 86 58 56 65 72 59 76 20 39 32 36 71 33 30 46
|
||||
Card 172: 47 15 51 8 77 74 7 41 30 35 | 8 30 45 15 99 80 75 52 74 28 49 81 16 2 66 62 32 10 69 65 92 77 38 73 13
|
||||
Card 173: 65 57 60 74 69 55 21 59 10 50 | 32 28 78 16 17 79 67 76 35 66 9 63 80 58 62 20 89 88 92 26 64 10 12 97 3
|
||||
Card 174: 40 66 82 30 61 27 78 54 8 48 | 73 45 28 49 52 91 25 20 55 34 33 7 23 4 5 56 74 44 9 75 2 24 71 3 70
|
||||
Card 175: 49 42 2 59 41 38 32 83 89 23 | 25 57 90 46 99 54 67 40 73 87 9 27 82 58 53 63 22 7 13 37 52 68 15 81 88
|
||||
Card 176: 22 81 29 71 28 4 94 32 19 98 | 53 47 84 63 45 73 7 79 52 31 75 49 55 21 96 38 23 58 1 15 40 83 2 90 41
|
||||
Card 177: 44 43 42 73 56 74 64 61 29 89 | 91 15 96 77 65 23 84 20 94 45 95 6 33 13 63 50 53 18 12 24 41 47 54 9 14
|
||||
Card 178: 12 16 77 20 89 41 55 94 13 50 | 78 36 67 75 55 12 20 28 94 63 45 81 53 26 43 41 16 89 50 68 77 22 32 62 13
|
||||
Card 179: 41 64 96 46 85 5 11 79 89 51 | 98 62 92 55 49 93 90 91 41 64 94 17 48 46 70 31 51 74 34 33 75 12 28 35 84
|
||||
Card 180: 27 13 89 84 45 16 77 86 72 83 | 55 89 12 83 5 37 38 53 98 77 16 27 22 78 45 87 35 64 68 93 41 84 13 34 88
|
||||
Card 181: 79 31 12 61 49 11 68 56 78 54 | 58 23 21 59 62 72 69 17 12 34 68 87 26 98 67 16 1 3 11 38 31 78 89 27 91
|
||||
Card 182: 52 55 4 31 57 5 23 66 78 68 | 52 31 87 50 98 83 66 4 26 25 68 63 14 70 54 29 7 22 85 42 17 27 67 32 5
|
||||
Card 183: 71 9 31 84 59 32 74 26 85 36 | 5 9 58 26 50 74 80 37 59 16 44 27 98 11 21 48 43 77 57 62 33 86 24 28 63
|
||||
Card 184: 47 16 69 11 99 34 79 65 49 9 | 92 97 64 83 49 73 17 36 29 46 1 15 78 25 58 81 51 23 84 39 60 91 67 3 56
|
||||
Card 185: 84 21 9 64 45 19 51 90 91 76 | 91 83 76 26 8 6 21 70 32 42 11 51 19 39 9 69 4 67 82 49 61 68 64 45 57
|
||||
Card 186: 69 5 36 53 16 65 64 32 62 50 | 8 4 2 92 18 13 33 9 42 78 59 25 68 79 19 28 38 32 16 36 71 69 65 63 17
|
||||
Card 187: 37 58 19 57 26 21 55 92 68 50 | 95 61 58 35 6 55 31 45 76 23 22 96 18 30 86 15 94 70 53 13 80 26 68 87 36
|
||||
Card 188: 46 30 47 87 12 68 84 51 90 42 | 71 61 95 42 60 14 22 84 83 48 23 20 27 69 47 18 85 94 96 35 66 93 87 5 50
|
||||
Card 189: 36 31 8 73 83 14 39 90 67 74 | 89 21 37 74 36 19 8 14 53 32 17 39 23 96 95 38 46 78 90 3 35 52 26 56 84
|
||||
Card 190: 41 75 39 18 97 85 30 24 83 40 | 81 95 22 33 97 40 98 48 30 47 37 39 75 78 46 27 59 85 82 41 6 56 24 12 29
|
||||
Card 191: 39 29 11 97 41 63 57 87 10 53 | 14 68 22 52 75 35 97 42 13 38 54 23 24 3 71 20 4 43 86 56 34 70 51 94 47
|
||||
Card 192: 18 88 98 45 41 71 32 87 29 99 | 99 85 91 7 21 86 5 12 87 35 95 94 65 57 17 58 39 78 22 49 32 2 8 19 97
|
||||
Card 193: 5 31 29 36 40 65 95 74 9 69 | 79 64 74 44 9 95 73 65 70 18 48 58 33 22 88 81 26 57 67 46 42 11 30 5 15
|
||||
Card 194: 45 87 50 51 64 69 13 83 40 52 | 54 82 76 85 32 61 70 81 44 33 9 77 99 23 39 60 19 35 31 52 65 78 79 34 95
|
||||
Card 195: 48 35 73 17 39 44 91 70 45 66 | 76 3 23 30 15 20 22 40 25 8 90 75 24 42 21 46 10 7 77 72 29 64 55 49 28
|
||||
Card 196: 45 95 66 40 83 68 96 84 15 89 | 51 86 89 90 70 88 36 53 14 18 22 74 46 17 56 1 9 65 87 24 30 32 38 66 92
|
||||
Card 197: 92 25 8 82 33 4 52 55 95 83 | 75 50 53 28 14 76 61 65 90 29 81 39 27 33 15 56 24 97 80 40 70 13 21 78 37
|
||||
Card 198: 30 94 70 37 58 66 8 78 71 18 | 97 64 16 13 77 57 87 74 54 92 1 52 35 23 82 9 72 22 80 27 75 10 15 20 43
|
||||
Card 199: 20 30 64 54 88 32 16 59 43 48 | 88 2 11 27 21 52 68 99 75 80 84 62 23 37 56 82 89 8 1 24 48 98 7 15 72
|
||||
Card 200: 86 18 84 48 80 11 30 72 1 88 | 16 48 55 32 41 51 18 2 76 72 81 84 58 22 88 27 11 89 8 66 30 53 93 20 19
|
||||
Card 201: 35 12 66 89 38 67 14 64 51 7 | 6 88 40 49 86 96 47 67 70 71 23 7 32 42 12 51 30 81 20 74 28 34 35 14 15
|
||||
Card 202: 89 13 72 16 67 26 37 46 66 33 | 56 95 63 93 67 97 44 74 83 60 36 78 30 45 87 24 90 70 99 88 80 48 82 68 54
|
||||
Card 203: 94 55 82 24 41 48 28 14 42 80 | 28 22 78 14 80 41 42 58 48 13 44 57 61 55 15 47 53 11 21 19 29 82 63 65 94
|
||||
Card 204: 54 66 41 71 2 91 73 85 78 69 | 24 82 41 38 45 91 4 68 77 18 54 78 85 73 71 2 69 44 76 80 63 89 9 34 66
|
||||
Card 205: 76 2 81 21 16 64 10 6 30 45 | 72 38 8 84 64 21 81 45 69 3 22 5 60 23 18 63 74 9 6 29 82 4 46 30 16
|
||||
Card 206: 62 17 63 99 1 31 48 89 22 53 | 28 74 78 47 48 97 73 31 68 23 42 14 2 99 49 37 39 8 35 64 66 92 44 54 11
|
||||
Card 207: 69 76 21 35 49 91 77 75 72 53 | 88 57 58 16 91 84 21 99 53 70 19 29 3 56 55 22 49 41 1 72 10 35 9 20 60
|
||||
Card 208: 33 97 67 76 69 63 13 41 54 21 | 84 69 9 11 21 50 12 45 97 67 54 42 18 63 62 81 96 33 31 95 26 48 17 68 76
|
||||
Card 209: 66 35 6 71 82 16 14 97 68 50 | 58 50 82 71 97 90 96 49 16 84 91 21 98 63 76 31 65 51 1 80 52 30 47 93 33
|
||||
Card 210: 56 53 62 97 78 68 27 16 50 10 | 48 71 80 87 8 39 22 9 53 58 54 1 11 14 96 6 41 65 37 34 98 17 85 24 20
|
||||
Card 211: 52 6 85 59 80 96 77 26 65 36 | 38 77 86 29 98 27 58 51 8 75 87 50 63 2 82 1 41 92 97 53 33 14 16 93 49
|
||||
Card 212: 82 69 16 77 49 12 19 29 30 31 | 42 81 22 94 32 78 61 29 11 1 64 87 19 57 88 82 24 8 7 46 5 28 30 77 26
|
||||
Card 213: 71 48 25 24 37 40 77 88 44 74 | 51 92 62 34 33 93 54 78 6 25 10 96 70 63 81 82 85 20 48 12 99 40 86 8 58
|
||||
Card 214: 12 43 97 95 19 39 98 13 41 93 | 69 89 10 36 50 20 51 33 67 88 73 59 81 29 17 34 85 28 92 55 5 63 79 72 52
|
||||
Card 215: 21 31 62 69 74 97 40 45 20 35 | 25 18 1 52 86 84 68 44 15 47 91 99 57 87 98 17 66 56 73 42 33 93 30 8 95
|
||||
Card 216: 94 71 33 51 86 70 60 78 12 17 | 98 68 80 56 47 53 41 55 70 37 46 43 8 22 74 48 62 9 10 65 7 60 39 29 97
|
||||
Card 217: 70 98 21 38 77 68 67 39 45 72 | 63 57 37 21 94 64 8 96 69 80 84 25 71 26 83 99 81 31 48 42 41 73 54 60 22
|
||||
Card 218: 92 44 79 17 16 34 55 78 19 9 | 52 39 85 98 93 46 21 91 20 45 1 89 66 27 4 88 99 41 86 72 38 40 84 81 69
|
3
2023/05/05.incomplete.py
Normal file
3
2023/05/05.incomplete.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
with open("input.txt") as f:
|
||||
text = f.read()
|
||||
|
250
2023/05/input.txt
Normal file
250
2023/05/input.txt
Normal file
|
@ -0,0 +1,250 @@
|
|||
seeds: 28965817 302170009 1752849261 48290258 804904201 243492043 2150339939 385349830 1267802202 350474859 2566296746 17565716 3543571814 291402104 447111316 279196488 3227221259 47952959 1828835733 9607836
|
||||
|
||||
seed-to-soil map:
|
||||
3680121696 1920754815 614845600
|
||||
1920754815 3846369604 448597692
|
||||
193356576 570761634 505124585
|
||||
2369352507 2535600415 31531965
|
||||
2400884472 2567132380 1279237224
|
||||
0 459278395 111483239
|
||||
698481161 97868205 361410190
|
||||
1059891351 0 15994868
|
||||
111483239 15994868 81873337
|
||||
|
||||
soil-to-fertilizer map:
|
||||
1633669237 1273301814 72865265
|
||||
2398515176 2671190790 99210785
|
||||
2397916384 3018946373 598792
|
||||
4034325916 3061716397 20017393
|
||||
3298612516 3793795301 14249501
|
||||
4030007411 3051046904 2833129
|
||||
1906984482 224872691 14620134
|
||||
864506893 1590633724 149044542
|
||||
1029530319 442871336 36727018
|
||||
1921604616 770934113 68546178
|
||||
3560536321 3114405501 28822192
|
||||
1019762634 1263534129 9767685
|
||||
3852235341 3579014714 60339892
|
||||
2385228698 1577946038 12687686
|
||||
2234322470 239492825 150906228
|
||||
0 170310676 54562015
|
||||
3208946111 3808044802 89666405
|
||||
1209615399 839480291 424053838
|
||||
4032840540 4041982568 1485376
|
||||
2497725961 2174737461 293042810
|
||||
2002543511 1346167079 231778959
|
||||
3312862017 3475611771 103402943
|
||||
318739997 1739678266 354749094
|
||||
1013551435 3012735174 6211199
|
||||
4014277153 4160859076 15730258
|
||||
3589358513 3143227693 230682158
|
||||
1990150794 2467780271 12392717
|
||||
3051046904 3081733790 32671711
|
||||
3820040671 3761600631 32194670
|
||||
148429321 0 170310676
|
||||
673489091 2480172988 191017802
|
||||
1066257337 627576051 143358062
|
||||
2790768771 2770401575 242333599
|
||||
3091554979 4043467944 117391132
|
||||
3416264960 3897711207 144271361
|
||||
3912575233 3373909851 101701920
|
||||
4072291714 3639354606 104297620
|
||||
3083718615 3053880033 7836364
|
||||
54562015 3019545165 13557205
|
||||
1759006785 479598354 147977697
|
||||
68119220 2094427360 80310101
|
||||
1706534502 390399053 52472283
|
||||
4054343309 3743652226 17948405
|
||||
|
||||
fertilizer-to-water map:
|
||||
0 1095885172 129797665
|
||||
2661548513 1044284418 17872363
|
||||
3282164642 3678907615 214830258
|
||||
1440687421 2218635146 325889720
|
||||
3496994900 4208791298 25912548
|
||||
3253828209 4136945159 5561683
|
||||
1797056017 864689597 109403664
|
||||
3259389892 4186016548 22774750
|
||||
2578517508 1225682837 83031005
|
||||
3193832718 3618912124 59995491
|
||||
3695649169 3214450646 211194594
|
||||
820325042 974093261 70191157
|
||||
1284591017 1074888739 20996433
|
||||
2929761569 3893737873 85668135
|
||||
1305587450 2605461705 73959171
|
||||
2168339930 1062156781 12731958
|
||||
2465234843 2135490203 52666067
|
||||
3522907448 4108091872 882860
|
||||
3523790308 4255675252 39292044
|
||||
2517900910 1308713842 60616598
|
||||
3563082352 3176039879 38410767
|
||||
3015429704 3979406008 128685864
|
||||
1913427402 2131043562 4446641
|
||||
2235159285 1419841841 190190495
|
||||
3673886186 4108974732 21762983
|
||||
891504291 1610032336 393086726
|
||||
3927815169 3425645240 193266884
|
||||
4121082053 3002154636 173885243
|
||||
2084864581 2004107154 83475349
|
||||
1917874043 557612753 69524983
|
||||
890516199 2003119062 988092
|
||||
766355924 2551492587 53969118
|
||||
1379546621 0 61140800
|
||||
3187625274 4130737715 6207444
|
||||
528804063 627137736 237551861
|
||||
1987399026 230411125 97465555
|
||||
1906459681 2544524866 6967721
|
||||
2184647884 1369330440 50511401
|
||||
2425349780 2091158499 39885063
|
||||
2181071888 2087582503 3575996
|
||||
3144115568 4142506842 43509706
|
||||
1766577141 2188156270 30478876
|
||||
359533738 61140800 169270325
|
||||
129797665 327876680 229736073
|
||||
3906843763 4234703846 20971406
|
||||
3601493119 2929761569 72393067
|
||||
|
||||
water-to-light map:
|
||||
2375927917 1595026882 126334140
|
||||
1307603095 818620477 43777869
|
||||
2050676589 1855896418 112224406
|
||||
3618302244 2909504698 119958941
|
||||
3078570200 3088215627 6211083
|
||||
3084781283 3094426710 141266337
|
||||
524666822 53020621 149058240
|
||||
673725062 862398346 147671362
|
||||
2364320682 2577001713 11607235
|
||||
1941578413 1584221500 10805382
|
||||
2162900995 2536766467 40235246
|
||||
162015400 237365123 4480592
|
||||
821396424 241845715 141336168
|
||||
166495992 1138498800 212882164
|
||||
4277433486 4220367555 17533810
|
||||
3226047620 2229635217 307131250
|
||||
2909428734 1968120824 34606070
|
||||
1885573816 3954749082 56004597
|
||||
2711875933 2868267590 41237108
|
||||
0 726306378 92314099
|
||||
2944034804 1721361022 134535396
|
||||
1584221500 3392008740 301352316
|
||||
962732592 34415039 18605582
|
||||
2235705153 2101019688 128615529
|
||||
4252936467 4237901365 24497019
|
||||
92314099 202078861 35286262
|
||||
981338174 400041457 326264921
|
||||
379378156 1010069708 128429092
|
||||
3591930858 3693361056 26371386
|
||||
3785017329 3719732442 235016640
|
||||
2502262057 4010753679 209613876
|
||||
3533178870 3029463639 58751988
|
||||
3738261185 2821511446 46756144
|
||||
4020033969 2806534555 14976891
|
||||
1952383795 2002726894 98292794
|
||||
127600361 0 34415039
|
||||
2753113041 3235693047 156315693
|
||||
507807248 383181883 16859574
|
||||
2203136241 4262398384 32568912
|
||||
4035010860 2588608948 217925607
|
||||
|
||||
light-to-temperature map:
|
||||
2137189745 1335050925 100355790
|
||||
639139367 2440321747 987829
|
||||
1663612748 1778059435 153830272
|
||||
1122754252 1950103191 82536600
|
||||
1929621334 1199531530 135519395
|
||||
1286703174 2032639791 207137687
|
||||
245313533 981575774 217955756
|
||||
2597564380 2824691125 293777778
|
||||
895004176 331442633 25226735
|
||||
1493840861 236388681 616173
|
||||
1494457034 764560381 107637728
|
||||
1817443020 1435406715 112178314
|
||||
1205290852 356669368 33552643
|
||||
474799702 0 164339665
|
||||
2341054397 2260378974 100255179
|
||||
1043066658 2360634153 79687594
|
||||
125852143 390222011 119461390
|
||||
3924383937 3130691909 13614218
|
||||
2467721984 3747288823 76649669
|
||||
2065140729 164339665 72049016
|
||||
920230911 1673437172 104622263
|
||||
640127196 509683401 254876980
|
||||
1024853174 1931889707 18213484
|
||||
2331983314 2251307891 9071083
|
||||
2237545535 237004854 94437779
|
||||
3912160931 3118468903 12223006
|
||||
1238843495 933716095 47859679
|
||||
3326002417 3517222025 230066798
|
||||
3556069215 3144306127 241363224
|
||||
3797432439 4180238804 114728492
|
||||
1602094762 872198109 61517986
|
||||
2544371653 4127046077 53192727
|
||||
2891342158 3823938492 303107585
|
||||
463269289 2239777478 11530413
|
||||
3194449743 3385669351 131552674
|
||||
3937998155 2467721984 356969141
|
||||
0 1547585029 125852143
|
||||
|
||||
temperature-to-humidity map:
|
||||
2687600833 2313887435 187105587
|
||||
3281196981 2291603041 22284394
|
||||
1771250828 1899269239 314167725
|
||||
784031720 478456148 306959384
|
||||
2605226464 1771250828 58348072
|
||||
2085418553 3793564740 111907603
|
||||
1090991104 785415532 575136195
|
||||
3437652344 1829598900 69670339
|
||||
2874706420 2500993022 389039942
|
||||
3303481375 3905472343 134170969
|
||||
305575572 0 478456148
|
||||
3263746362 2890032964 17450619
|
||||
2527060387 2213436964 78166077
|
||||
2428623843 3695128196 98436544
|
||||
2663574536 4270940999 24026297
|
||||
3507322683 2907483583 787644613
|
||||
2197326156 4039643312 231297687
|
||||
0 1360551727 305575572
|
||||
|
||||
humidity-to-location map:
|
||||
1919184105 1156349110 51114849
|
||||
4031284281 3411510751 25609498
|
||||
0 171183359 79004094
|
||||
1253227229 2072782209 122019778
|
||||
4056893779 3437120249 136289693
|
||||
3402931364 4156827458 101778985
|
||||
84557792 1207463959 134801591
|
||||
635909965 1371746366 266495395
|
||||
4029464617 4127764171 1819664
|
||||
4193183472 2857352625 101783824
|
||||
1375247007 2200355685 41445634
|
||||
1996492203 0 171183359
|
||||
3601595563 3699895117 427869054
|
||||
2218993186 1133540977 22808133
|
||||
3217192942 2959136449 140385316
|
||||
2987922009 4258606443 9236491
|
||||
2628749093 2543337773 86365212
|
||||
2167675562 369831582 51317624
|
||||
3504710349 2446452559 96885214
|
||||
902405360 421149206 108869392
|
||||
3357578258 2811999519 45353106
|
||||
1196458443 1638241761 56768786
|
||||
1178674352 693035436 17784091
|
||||
1970298954 530018598 26193249
|
||||
2868723842 3099521765 91954544
|
||||
1522874936 895259169 18612073
|
||||
2841599480 4267842934 27124362
|
||||
1880563756 1695010547 38620349
|
||||
1011274752 913871242 137918784
|
||||
219359383 556211847 136823589
|
||||
1785350971 250187453 95212785
|
||||
2960678386 4129583835 27243623
|
||||
540622614 1977494858 95287351
|
||||
356182972 710819527 184439642
|
||||
1498443592 345400238 24431344
|
||||
1416692641 1051790026 81750951
|
||||
1541487009 1733630896 243863962
|
||||
79004094 2194801987 5553698
|
||||
1149193536 1342265550 29480816
|
||||
2997158500 3191476309 220034442
|
||||
2715114305 3573409942 126485175
|
||||
2446452559 2629702985 182296534
|
36
2023/06/06.py
Normal file
36
2023/06/06.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
with open("input.txt") as f:
|
||||
lines = f.readlines()
|
||||
times, distances = lines
|
||||
times = [int(t) for t in times.split()[1:]]
|
||||
distances = [int(d) for d in distances.split()[1:]]
|
||||
races = zip(times, distances)
|
||||
|
||||
def distance(t, t_max):
|
||||
"""
|
||||
Calculate the distance traveled if you charge for t seconds
|
||||
"""
|
||||
return (t) * (t_max - t)
|
||||
|
||||
def part1(races):
|
||||
answer = 1
|
||||
for race in races:
|
||||
t_max, d_max = race
|
||||
results = [
|
||||
(t, distance(t, t_max))
|
||||
for t in range(t_max)
|
||||
if distance(t, t_max) > d_max
|
||||
]
|
||||
answer *= len(results)
|
||||
return answer
|
||||
|
||||
print(part1(races))
|
||||
|
||||
def part2(times, distances):
|
||||
t_max = int("".join(str(t) for t in times))
|
||||
d_max = int("".join(str(d) for d in distances))
|
||||
for t in range(t_max):
|
||||
if distance(t, t_max) > d_max:
|
||||
break
|
||||
return t_max - 2*t + 1
|
||||
|
||||
print(part2(times, distances))
|
2
2023/06/input.txt
Normal file
2
2023/06/input.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
Time: 48 87 69 81
|
||||
Distance: 255 1288 1117 1623
|
156
2023/07/07.py
Normal file
156
2023/07/07.py
Normal file
|
@ -0,0 +1,156 @@
|
|||
from collections import defaultdict, Counter
|
||||
|
||||
with open("input.txt") as f:
|
||||
hands = f.read().split("\n")
|
||||
hands = [(hand.split()[0], int(hand.split()[1])) for hand in hands]
|
||||
|
||||
|
||||
def rank(hands):
|
||||
ranked = defaultdict(list)
|
||||
for hand in hands:
|
||||
r = get_rank(hand)
|
||||
ranked[r].append(hand)
|
||||
return ranked
|
||||
|
||||
def get_rank(hand):
|
||||
c = Counter(hand[0])
|
||||
counts = c.most_common(2)
|
||||
# extract counts
|
||||
first = counts[0][1]
|
||||
second = counts[1][1] if len(counts) == 2 else 0
|
||||
# discriminate based on counts
|
||||
d = (first, second)
|
||||
match d:
|
||||
case (1,1):
|
||||
return "HC" # high card
|
||||
case (2,1):
|
||||
return "1P" # one pair
|
||||
case (2,2):
|
||||
return "2P" # two pair
|
||||
case (3,1):
|
||||
return "3K" # three of a kind
|
||||
case (3,2):
|
||||
return "FH" # full house
|
||||
case (4,1):
|
||||
return "4K" # four of a kind
|
||||
case (5,0):
|
||||
return "5K" # five of a kind
|
||||
|
||||
def order(hand: str):
|
||||
"""
|
||||
Convert to base-15 for proper sorting
|
||||
"""
|
||||
# A = ten
|
||||
# B = jack
|
||||
# C = queen
|
||||
# D = king
|
||||
# E = ace
|
||||
return hand.replace(
|
||||
"A", "E"
|
||||
).replace(
|
||||
"K", "D"
|
||||
).replace(
|
||||
"Q", "C"
|
||||
).replace(
|
||||
"J", "B"
|
||||
).replace(
|
||||
"T", "A"
|
||||
)
|
||||
|
||||
def part1(hands):
|
||||
ranked = rank(hands)
|
||||
ranked_hands = []
|
||||
ranked_hands += sorted(ranked["HC"], key=lambda hand: order(hand[0]))
|
||||
ranked_hands += sorted(ranked["1P"], key=lambda hand: order(hand[0]))
|
||||
ranked_hands += sorted(ranked["2P"], key=lambda hand: order(hand[0]))
|
||||
ranked_hands += sorted(ranked["3K"], key=lambda hand: order(hand[0]))
|
||||
ranked_hands += sorted(ranked["FH"], key=lambda hand: order(hand[0]))
|
||||
ranked_hands += sorted(ranked["4K"], key=lambda hand: order(hand[0]))
|
||||
ranked_hands += sorted(ranked["5K"], key=lambda hand: order(hand[0]))
|
||||
answer = sum(
|
||||
[
|
||||
hand[1] * (rank + 1)
|
||||
for rank, hand in enumerate(ranked_hands)
|
||||
]
|
||||
)
|
||||
print(answer)
|
||||
|
||||
part1(hands)
|
||||
|
||||
### Part 2
|
||||
|
||||
def order2(hand: str):
|
||||
"""
|
||||
Convert to base-15 for proper sorting
|
||||
"""
|
||||
# A = ten
|
||||
# B = jack
|
||||
# C = queen
|
||||
# D = king
|
||||
# E = ace
|
||||
return hand.replace(
|
||||
"A", "E"
|
||||
).replace(
|
||||
"K", "D"
|
||||
).replace(
|
||||
"Q", "C"
|
||||
).replace(
|
||||
"J", "1" # jokers are worth less than 2
|
||||
).replace(
|
||||
"T", "A"
|
||||
)
|
||||
|
||||
def get_rank2(hand):
|
||||
c1 = Counter(hand[0])
|
||||
c2 = Counter(hand[0].replace("J", ""))
|
||||
jokers_count = c1.get("J") or 0
|
||||
counts = c2.most_common(2)
|
||||
if not counts:
|
||||
counts = [('', 0),('', 0)] # prevent index error when 5 jokers
|
||||
# extract counts
|
||||
first = counts[0][1] + jokers_count # convert jokers to highest-scoring card
|
||||
second = counts[1][1] if len(counts) == 2 else 0
|
||||
# discriminate based on counts
|
||||
d = (first, second)
|
||||
match d:
|
||||
case (1,1):
|
||||
return "HC" # high card
|
||||
case (2,1):
|
||||
return "1P" # one pair
|
||||
case (2,2):
|
||||
return "2P" # two pair
|
||||
case (3,1):
|
||||
return "3K" # three of a kind
|
||||
case (3,2):
|
||||
return "FH" # full house
|
||||
case (4,1):
|
||||
return "4K" # four of a kind
|
||||
case (5,0):
|
||||
return "5K" # five of a kind
|
||||
|
||||
def rank2(hands):
|
||||
ranked = defaultdict(list)
|
||||
for hand in hands:
|
||||
r = get_rank2(hand)
|
||||
ranked[r].append(hand)
|
||||
return ranked
|
||||
|
||||
def part2(hands):
|
||||
ranked = rank2(hands)
|
||||
ranked_hands = []
|
||||
ranked_hands += sorted(ranked["HC"], key=lambda hand: order2(hand[0]))
|
||||
ranked_hands += sorted(ranked["1P"], key=lambda hand: order2(hand[0]))
|
||||
ranked_hands += sorted(ranked["2P"], key=lambda hand: order2(hand[0]))
|
||||
ranked_hands += sorted(ranked["3K"], key=lambda hand: order2(hand[0]))
|
||||
ranked_hands += sorted(ranked["FH"], key=lambda hand: order2(hand[0]))
|
||||
ranked_hands += sorted(ranked["4K"], key=lambda hand: order2(hand[0]))
|
||||
ranked_hands += sorted(ranked["5K"], key=lambda hand: order2(hand[0]))
|
||||
answer = sum(
|
||||
[
|
||||
hand[1] * (rank + 1)
|
||||
for rank, hand in enumerate(ranked_hands)
|
||||
]
|
||||
)
|
||||
print(answer)
|
||||
|
||||
part2(hands)
|
1000
2023/07/input.txt
Normal file
1000
2023/07/input.txt
Normal file
File diff suppressed because it is too large
Load diff
17
2023/10/10.incomplete.py
Normal file
17
2023/10/10.incomplete.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
with open("input.txt") as f:
|
||||
pipes = f.read().splitlines()
|
||||
|
||||
def part1(pipes):
|
||||
start = [
|
||||
(i, j)
|
||||
for i, line in enumerate(pipes)
|
||||
for j, char in enumerate(line)
|
||||
if char == "S"
|
||||
][0]
|
||||
|
||||
distance = [([0] * len(pipes[0]))] * len(pipes)
|
||||
|
||||
x, y = start
|
||||
d = 0
|
||||
|
||||
|
140
2023/10/input.txt
Normal file
140
2023/10/input.txt
Normal file
|
@ -0,0 +1,140 @@
|
|||
F|7.F|-F|777FJ7FF77-F777F7F|7..FF-77FF|--JJFJ7-J-F77.FF-F7F-F-FL7|--7---F.FL-7-7J.FFF7|-FFJ7.7.LF-LLJ77|F7FJJ-JFF|-.|FFF7F7..FFL7F-FJ-7-LL77
|
||||
|-J-JL.LL7-7-J|FLJLJ.L|7|F-J-|-FL7L-7-J-LJFJ-77FF-LL-FJFLLJ7L.L.||..7FJ7J7FJFL-LJFLJL--.|7JL||FLJLL|JLJ.LL7J.FF|-J.L---JJ.F77L-LLF7L|F77LJ|J
|
||||
LLJ|FJF-F--7LFL-J|7F--F--JJ|-JF-7|F-JJJ..FLJ.LFJJ.FJ-|J|J7.JFFJ-7---LLJL7FJ.J-FL-FLF7|LLJJ|L-J--7JJ|77LJ.FJFFFJL7J7|-|-J.FL7JL|LLJL7L7JFF.JJ
|
||||
7-L-J7|LJJ-7-JLLF77J7.LF77LLJJL7|||F7J.|-FJ|FL7|-|7|JL7JLF|--JJJ|J7..|LL|J7-|FFJ|LJ.7--L|L7.L|F7.FF||L..FLJL-JF-JFLFF77.FFLLJL7F|F-J-L7JFJJ.
|
||||
-7JL|7L-||F7|F|JF-F---7|L77F|-FJLJ||L7-J7|7F7.L|7L|JL---7-|7LJ|-|.F7--.|.L-FJ7JJLL-7|LF-7F|FF77JF7JLJ7.|.|-|7J|.L-.|JL--FJ7--7|-FJ7|J|LLL--J
|
||||
L77JLJ-FJ-FJJ-|7JF77LF-7LL-F7FJF-7||FJF7L|J-J7JL--||FJJ-|..J..F-7--FJ|77.L7|L7-7..FL-.L7|-L|J|J.FJ7|F-FJ--.J7F-LFJ--J.FF|-7--7--|-F-FJ.LL7|J
|
||||
LLF7-7F7.-L|JLJ|.LJ-.F7|FF.||L-JFJ||L7F7L|J.L-77-77-JJ.-J77.F.L7|F|L77|L-7F--J|--LLJ|.F||J-LFLJFF7--|L|..|-|L|JFJ77|.L--77.LJ-JLL-7F|-7|LLL7
|
||||
|.||.F-...FLF-7L7-7FJ|FJ||FJ|F-7L7||FJ||F77.-7L||.|-|.LLL-7.F-7||J7-LJ77L||J--||.|JFFJF|L-7F7JF-J|7J|||-LL7|.|F7LJ-|.F7FL7F7J||LL7LF--77-L|7
|
||||
FFJ7.||.--7.JJF.7.F-J7|F7FL7LJFJFJ||L7|||L7.|L7|J-F777-|L7-7L7LJ|JL7-L-77L-.7L|7FF-|J|-L7FJ||F7.FLL77F-.FLLF7-||7LFF-LF|.|-J7FL-7|...-77F-LJ
|
||||
||L|7F7JJ|J...F.777JJL7||F7L-7|FJFJL7||||FJ7-F7||-||-F-J|..FLL7FJ7JF-7L|7-L--FJ||7-J.F7FJL7|L7LLJJ7LFJF|J7F|L-JL7-7|.|||FL7LJ7LJ-|-77.LFJ|..
|
||||
LJ7FJ-J|-JFF|-J7L-.|JFFJ||L--JLJFJF-JLJLJL7F7F7-7F||7|-F7-FFF7||F-7J-7-L|7J7.||F7.J|.||L7FJ|FJ|F|7LL-|7L---L--7FJJJF7F|JF-7--|7||||F-F-||L|7
|
||||
|.LL|J.L-JFLJF7|.|7.F-L7LJF--7F7L7|F----7FJ||||-F7||FF7F7F--JLJLJFJ||F.|J.LF-LFJL7JF-JL-JL-JL7-F.|JF-|F77F|||FJL77.-JF7.LF7LFJ-|7-||FL-|-JL|
|
||||
JFF-7.FFLFJ7-FLJ7L7F|7FL7FJF-J|L7LJL---7LJFJLJL7|LJL-J|||L----7F-J|FFJ--F77.|.L-7L7L-7F------JJ.FF77--J|7FF7FJF7L7-.LL--FJ|||L-LJ.LJ7.|J.L|J
|
||||
|FJJ|.---L-JJLL||L|LF-7FLJ7|F-JJL-7F---JF7|F---JL--7F-J|L7F-7FJL7J7LJL-L||L-7F7FL7L7L|L---7F7J-FF7F777F-7FJLJFJL-J7F77J7.L|F|J|LJFL7F7L-7-7-
|
||||
L77FJ-||7FF7---LJ-7.LJF7F-7LJF-7F-JL-7F7||||F7F7LF-JL7FJFJL7||F-JF77J||L||7LFJ|F7L7L7|F---J|L-7F|LJ|F7|FJL--7||F7F-J|F-77F-|J77LF|-JJJ.J7.LJ
|
||||
||LJ..L-LJJ-7-7L7.L.FF|||FJF7L7|L-7F-J|||||||LJL7L7F-J|FJJFJLJ|F7|L7F-7.|L7FJFJ||.L7||L--7||F-J-L-7LJ|||F7|FJL7|||F-J|FJJ-.|L-7-|L|.|L.L|77.
|
||||
F7-LJ7|JFL|7LFJ|L7.FF7|LJ|FJL-JL--J|-FJLJLJLJF--JFJL7FJ|F7L7F7||LJFJL7|-L7|L7||||F7|||F--JFJ|F7F7LL-7LJLJL7L7FJ|LJL--JL7J.-|-L--F-7F|--|J|7L
|
||||
J77F.JJ.J-7J-L7F77F7||L-7|L-------7|FJF------JF7|L-7||FJ|L7LJ|LJF-JF7||F7||FJL7|LJLJLJL-7|L7|||||FF7L7F7F-JL||FJF7F----J---J|.|7L7L7|.FLF|77
|
||||
FL-JF|FL-7.|7LLJF7||||LFJL-7F7F7F7|LJFJ-F--7-FJL7F-J|||L|FJFFJF7L-7|||||||LJF-JL---7F7F-JF-J||LJ|FJL7LJ|L-7L|||FJLJF7F7J.|-|FL.L--7FJ---|JL7
|
||||
FF7L-|L|.L|||.FFJLJLJL7L--7||||LJ|L7FJF7|F7L-JF-JL-7LJL7|L--JFJL7FJ|||LJ||F-J-F-7F7||LJF7L-7||F-JL-7|F-JF-JFJLJL7F7|LJL77FFJLL|.L.JJL-J7J-J|
|
||||
|-7FFJL|.|||..FL-----7L---JLJ|L-7L7|L7|LJ||F7FJJF-7|F7FJ|F--7|F7LJFJ|L-7|||F-7L7LJLJL--JL7FJ||L7F7FJ|L7FJF7L7F--J|||F--JF77L-7J.|L.|.LL|-7J7
|
||||
7F77|J7|F--FF-7JLF7F7L------7S77L7LJFJ|F-JLJLJF7L7|LJ|L7LJF-JLJL77L7|F-JLJLJFJFJF---7F---JL7LJFJ||L7|L|L-JL-JL7F7||||F-7||LL|LF--J.L7FL|L|-|
|
||||
L7|LJ|F7L.J.L7|FL|LJ|F7F----JFJF7L-7|FJL7F7F-7||FJL-7|FJF7L-7F-7L7FJ|L---7F-JFL7|F--JL----7|F7|FJ|FJ|FJF--7F--J|||||LJFJ||F7|F|F|FJLJ7.7J|LF
|
||||
F-FJLJLL---FFJL7LL-7LJ|L-7F-7L7|L--JLJF-J|||FJ||L--7LJL7||F7|L7L-J|FJF-7L|L--77LJL--7F----JLJ|LJFJL7|L7|F7LJF-7|||LJF-JFJL--7-JL77||.|7LLL7L
|
||||
FJ|J-|J-FJ.FL-7|-F7L-7|F7LJFJFJL--7F-7L-7||||7|L7F7L-7FJ||||L7L7F7|L7L7|FJF--JF7-F7FJL--7F-7FJF-JF7|L-JLJL7FJFJ|||F7L--JF7F-JFLLJ|L-.|FF.FJJ
|
||||
L7.LF777FFF7F7||.|L--J|||F7L7|F7F7LJJ|F7||LJL7L7|||F7|L7|LJL7L7||||FJFJ|L7|7F7||FJLJF---J|FJL7|F7||L-7F---J|FJFJLJ|L----JLJF77--7-7.L-JLF|J.
|
||||
FJ7LJJL--LLFJLJL-JF--7LJLJL-JLJ|||LF-J|LJL-7FJFJ||LJ||FJL-7FJ.|||LJL7L7L-JL7|LJ|L--7L7F7FJ|F7|||LJL7FJL7F7L|L7L-7FJF--7F7F7||JLFJF|7LLF--J.|
|
||||
|JL.J7-|J|.L-7F---JF7L--------7|||FJF-JJF-7|L-JFJL-7||L-7FJL-7|LJF--JJL-7F-JL-7|F7FJFJ||L7|||||L-7FJL-7LJL-JFJF-JL7|F-J|LJ|||-FJFF7--J..||-|
|
||||
JLLFJLFJFF--7LJF--7|L7F7F7F---JLJLJFJ7F7L7||F--JF-7|LJF-JL-7FJL-7L7F7F--JL7F7L||||L7L7||FJ|||||F7||F-7L7F---J7L-7FJ||F-JF-J||F7F-J|.|F|-L7.7
|
||||
|.|.FJL-FL-7L-7L-7LJFJ|||||F7F---7FJF7||FJLJL-7FL7LJF7L7F7FJL7F7|FJ||L---7LJL7|LJ|JL7|||L7LJLJ||LJ|L7|7||LF7F7F7|L-JLJF7L--JLJLJF-JFF-|L|77F
|
||||
L77.|7FFF--JF7L7FL-7|FJ|||LJLJF77|L7||||L--7F-JF7L--JL7LJ|L7FJ|||L7||F7F7|F--JL-7L7FJLJL7L7F--JL-7L7|L7|L7|||||LJF----J|F7F-7F--JFJ7|F--7L|J
|
||||
F||7L-77L---J|FJ7F-J|L7|||.F--JL7L7|||||F--JL7.||F-7F-JF-JL||FJ||FJ|||||LJ|F7F7FJFJL--7FJFJL---7.L7||FJ|FJ|LJLJF7L----7LJLJLLJJJ-|-LL--7J-LJ
|
||||
L|-FF7LF.FF--JL-7L-7L-J||L7L-7F7L-J|||||L---7L7||L7|L-7L7F-J||FJ||FJ|||L-7|||||L7L7F7FJL7L7F---JF7|LJ|FJ|FJF-7FJL-----JF--7F7.FLJ|L|.|JL--JJ
|
||||
F.LLJF.|F7L----7L--JF-7|L7|F7LJ|F-7LJ||L7F7FJFJ||FJ|F7|FJL-7||L7|||FJ||F7|LJLJL7|FJ|||F7|FJ|F-7FJ||F-JL7LJFJ.LJF7F7F7F7|F-J||-||F|.|FL7L|..L
|
||||
J.L|.L-FJL-7FF7|F---JFJL-J||L7FJ|7L7FJ|FJ|||FJ-||L7|||||F7L|||FJ||||.||||L7F---J||7||||LJL7||FJ|FJ||F7LL7FJF---J||LJLJLJ|F-JL--7-J7-|F7-L.|.
|
||||
F----FFJF-7L-J|LJF7F-JF--7|L7||FJF7||FJL7|LJ|F-J|FJ||||||L7|||L7||||FJ|||FJL7F--J|FJ||L-7FJLJ|FJL7||||F7||FJF7F-J|F--7F7LJF7F--J7F7-F7J-7|LL
|
||||
JJ-7L-L-JFL7F7L-7||L7FJF7||FJ|LJFJLJ||7L||F-JL-7|L7LJ||LJF|||L7||||||FJ||L7FJ|F--JL7|L7JLJ|F-J|F-J|||||LJ||FJLJF-JL-7LJL--J||F7LFJ|FJL7J7|F|
|
||||
|L|LFLJJ.F7LJL-7||L7LJFJLJ|L7|F7L--7|L7FJ||F7F7||FJF-JL7F7|||FJLJ||||L7||FJL7|L-7F7|L7L7F--JF7||F7||||L77LJL---JF7F-JF-7|F7LJ||-L7||F-JLFFJ|
|
||||
|-|..|J-FJL----J|L7||FJF-7L-JLJL---JL-J|FJ||||||LJFJF-7LJ|||||JF7||||7LJ|L7FJ|F-J|||FJFJL7F7|||LJ|||||FJF-----7FJLJF7L7L-J|F-JL--JLJ|J7||F.J
|
||||
F-FL--7L|F---7F7L7||FJFJJL--7F7F-7F--7FJL7|||||L-7L-JFJF7||||L-J|LJ||F--JFJL7|L7FJ||L7|.FJ||||L7FJ|||LJFL---77LJF7-|L7|F--J|F----7F7|-|F-|7J
|
||||
|FL|.|FFJL7F-J|L7LJLJFJF----J|||FJ|F-JL-7||||||F-JF7FJFJ|||||F-7L-7|||F-7|F-J|FJL7||FJL7L7||||FJL-J||F-----7L---JL7|FJ|L7F-JL---7LJLJ|LJ||.|
|
||||
L-J.FFJL--JL--JFL---7L7|F7F-7|LJL-JL---7LJLJ||||JFJLJFJFJ||||L7L7FJ||||FJ|L-7||F7|||L7FJFLJ|||L7F--J|L7F--7L------J||7|FJL7F----JL|-L7FJ-|-7
|
||||
|.F-J|L|7F---7F-----JFJLJLJ.||F---7F---JF7F7LJ|L7L7F7|-L7|LJL7|7|L7||LJ|FJF-J|||LJ|L7|L-7F-J||FJL7F7L7LJF-JF7.F--7J|L7||F7|L-7FF7F7.F-J|.LFJ
|
||||
F-|7LJ-JFL--7|L7F7F-7|F7F7F7LJL--7|L----JLJL-7|FJJLJLJF-JL7FFJL7|FJLJF-JL7L-7||L-7|FJ|F7||F7|LJF7||L-JF7L--JL7|F-JFJFJ|LJLJF-JFJLJL-7JFFFJ|J
|
||||
JFL-L7.F----J|JLJLJ||||LJLJL--7F-JL------7F7FJLJF7F-7|L7F7L7L7FJ|L-7FJF7FJ-FJ|L-7||L7||LJ||||7FJ|LJF77||-F---J||F7L7L7|F---JF7|F----J|||F--.
|
||||
|FJF-|.L----7L-7F7F-J|L7F7F7F7|L--------7LJ|L7FFJLJFJF7LJL7L7|L7|F-JL7|||F-JFJF-J|L7|LJF7|||L7L7L--J|FJL-JF7.FJLJL-JFJ||FF7FJLJL----7-J-|.|7
|
||||
J|.|L7FF7F-7L-7LJLJF7L7||||LJ|L-------7FJF7L-JFJF7FJ.||LF-JFJ|FJ||F7|LJ||L-7L7L-7L7|L--J|LJL7|LL---7LJF---JL-JF----7L-JL-JLJF---7F--J.||J-L7
|
||||
|-F7-LL||L7|F7L7F-7|L7|||LJF7L-------7LJFJL7F-JFJLJF7|L7|F7L7|L7|LJL7LFJ|F-JFJF-JFJL7F7FJJF-J|F----JF7|F---7F7L---7L7F--7F-7L--7LJ7.J.LF-F-7
|
||||
7-7L|.||L-JLJL-J|FJ|.||LJF-JL-------7L-7|F7|L-7|JF7|||FJLJL7||FJL7F-JFJFJL-7|-L-7L-7||||7FJF7|L7F7F7|||L-7.LJ|F-7FJ.|L-7LJFL7F7L--77FJ.|-7J.
|
||||
--L7F-F|F-7F---7|L7L7||F-JF7F--7F--7L--J||LJF-JL-JLJLJL---7|||L-7LJF7L7L7F-JL-7-L7FJ|||L7L-JLJFJ|||LJ||F7L--7LJFJL-7|F7L---7|||F7FJ-J.-F-J.F
|
||||
||L7|7JLJ-|L7F-JL7L7|LJL--JLJF7LJF7L---7||F7L7F----7F-7F--J|||F7L--JL7L7|L-7F7L7FJ||||L7L-7.F7L7|LJF7LJ|L---JF7L7F-JLJ|F7F7|||LJ||JLJFL||..|
|
||||
FJFFFL.FLFJFJL7F-JFJ|F-7F7F--JL-7||F---J||||J|L---7||F||F-7|||||F7F7FJFJ|F-J|L-JL7L7LJFJF-JFJ|FLJLFJ|F7L-----J|||L--7FJ|LJLJ||F7LJF7|7FL7-FJ
|
||||
L7L77JFFJL-JF-JL7-L-JL7LJLJF7F-7LJLJF7.FJLJL-JF---J|L7|LJFJLJLJLJ|||L7L7|L-7L---7L7|F7|FJF7L7|F7F7L7LJ|F------JFJF-7|L7L77F-JLJL7F-FL|L-F.J.
|
||||
FJ-|||F--|F7L7F7|7LF--JF--7||L7L7F-7||FJF7F-7FJF--7L7||F7L7F-7F7L|||FJFJ|F-JF7F-J.LJ||LJFJL-JLJLJL-JF7|L-7F7F7JL-J7LJ7L7L7|F7F7FJ-FLFJLLJF.7
|
||||
FJ|LJ-L7.FJL-J|LJF7L---JF7LJL-JLLJFLJLJFJLJL|L-JF-J|LJ||L7|L7LJL7LJLJFJFJL-7|LJF----JL-7L----7F7F7F-J||F7LJLJL---77F-7FJFJLJ|||L77-.L-7LF|-7
|
||||
|-F7-|J|-L7F-7|F-J|F7F7FJL-7F7FF-------JF7F-JF--JF--7-LJFJL-JF7FJLF7LL7|F--JL-7L-7F7F7FJ-F7JFJ|LJLJF-JLJL---7F7F7L7L7|L-JF7-LJ|FJJ-FJ.F--J7|
|
||||
L|LF7|-LL-LJFLJL-7||LJLJF-7LJL7L--------J||F7L7F-JF7L-7JL7F7FJLJF7|L7|||L7F7F-JF-J|LJ||.FJL-JFJF7F-JF------7LJ||L7L7|||F7|L--7LJ7-LF7-7F7LL7
|
||||
FJ-L77777LFJ-F---J||F7F7|FJF7FJF----7F-7FJLJL7LJF7|L-7L-7LJ|L---JLJFJ-||-|||L-7|F7|F-JL7L----J-|LJF-JF7F7F7L-7LJ-L-J|L-JLJF--JJ.77.L7..F7-J|
|
||||
|||L|J.77-L|FL---7|LJ||||L-J|L7L-7F7LJ7LJF7F-JF-J|L-7L--JF7L7F-7F7FJ.FLJL|||F-J||LJL7F7L--7F7F7L--JF-JLJLJL--JF7F7F-JF-7F7L--7|||-LF7FFF7.FJ
|
||||
|FF-JJ7LF7-LF----JL7|LJLJ7F7L7L-7LJL7F---J||F7L-7L--JF7F-J|-LJJLJ|L--7-F-||||.LLJF-7LJL--7|||||F7F-JF-----7F7||LJLJF-JJLJL---J7F||LL-LFJ|F7J
|
||||
LL7.J.LFJ|.FL-----7|F7F7F7|L7|F7|F7FJ|F---JLJL-7L7F--JLJF7L---777L7F-J--JLJLJ7..FL7|F7F--JLJ||||||F7|F----J|L7|F7F7L7F7-F7F7F7F-77.|.||L-LJJ
|
||||
LL77.L7L7L7F7F7F--J||LJ|||L7|LJ|LJLJFJL---7FF-7L7LJF7F7FJ|F7F7L--7|||J-JF||LL7FFF7||||L-7F-7LJ|||LJ||L-7F7F|FJ||LJL-J|L7|||LJ||FJ|F--J|JJJFF
|
||||
LL|||L7.L7LJ||LJF-7|L7FJ||FJL7FJF--7|F----JFJFJ-L--JLJLJ7LJLJL-7FJ||-J7FJL7|7.FFJLJ|||F7LJ.L-7LJL7JLJF7LJL-JL-JL--7F7L7LJ||F7LJL-77.|LFJJLJJ
|
||||
.|LL-J.7|L-7|L--JFJL-J|FJ|L-7||FJF7LJL-7|F7L7|JF7F---------7F7-LJ.LJ.LF-7-J7-7JL--7LJ||L--7F7L7F7|F--JL-7F7F------J|L-JF7LJ||F7F7L7777|.FFJJ
|
||||
FL-|LFF--7.||F77FJF7F7LJFJF-J|LJFJL-7F7L7||F|L7|LJF-7F7F7F7LJL---7|.7JF-JJLJFFF7F-JF-J|F-7LJL7||LJL----7LJ|L--7F---JF7FJL--J||||L7|7-J7FFL-7
|
||||
||.|J|L-7L-JLJL-JFJLJL-7L7L-7L7FJF-7LJL7LJL-JFJ|F-JJLJLJ||L------JJ7-7LF|JJJF-J|L-7L-7LJ7L--7LJL7F7F7F7L-7L7F7LJF-7FJLJF---7||LJ-LJJ|.|LF-7|
|
||||
FF|J.F|JL----7F7FJF---7L7L--JFJL7L7L-7.L7F-7FJ-||F7F---7|L--77L|LJ-F-L-L-F77L-7|F-JF-JF7-F7J|F-7LJLJLJL--J7LJ|F-JFJL---JF7FJ|L7|.|.F77-J.|FL
|
||||
J.FJF7LLF--7.LJLJ|L--7L-JF7F7L-7L-JF-JF7LJFJL--JLJLJF--JL-7FJ77.|.|J.J-JJ|L--7||L-7|F7|L-JL-JL7L------7F---7J|L-7L7F7F-7||L7L7L7FL-FJJL7-LJ|
|
||||
|F|F|7FLL-7|F7|-F----JF--JLJL7FJ7F-JF-JL7-L7F7F-7F-7L----7LJJLJFFFF--7|LLL7F7LJL--JLJLJF7F7F7FJF7F7LF7LJF-7L7|F7L7LJ|L7LJL-J7L7L7J.L|.LFJ.FL
|
||||
FJLFF7F-7FJLJ|F7L-7F--JF-----J||FJF-JF--JF7|||L7LJFJF7F--JF|7.LFJF-JF-JJLLLJL-7F7F-7F-7|||LJLJFJLJ|FJL-7L7L-JLJL7L7FL7L7F7F7F7L-J.FFJ|.|.7-L
|
||||
77F7|||FJL--7LJL7|LJF-7L7F-7F7L-JFJF-JF--J||||FJF7L-J|L---7F7F77L7-L|J...-F--7LJ|L7LJFJ|LJF---JF-7LJF-7L7L--77F7L7L-7L-J|||LJL----7JL|F|FL-|
|
||||
F-JLJLJL---7L--7|F7-L7|JLJ.LJ|F-7L7L--JF7FJ|||L-JL--7L----J|LJ|7.|FL|.FL.FL-7L--JFJF7|FJF-JF7F7|JL7FJFL7L---JFJ||L--JFF-JLJF--7F--J7.LJ-7JF|
|
||||
L-7F-7F-7F7L---JLJL-7||F-7FF-J|FJFJF7F7||L7LJ|F-----JF-----JF7L77-JL|77FL77|L-7F7L7|LJL7L--JLJ||F-JL7F-JF--7-L7L------JF7F7L7JLJ|F||F|-J.F||
|
||||
L.LJ.||FJ|L-7F-7F7F7LJ|L7L7L--J|FJFJLJLJL-JF7LJF----7L7F--7FJL-JJ|FFJ|L7--L||FJ|L7||F-7|F-----J||F7FJL--JF-JF7|F------7|LJL-J7-F--7FF77.--77
|
||||
.FLJFLJL-J7FJ|FJ||||F7L7L7|F7F7LJJL7F7|F7F7|L--JF--7|FJL-7|L-7F7-FFJL7-7|.LLFJFJFJ||L7LJL-----7|||LJF7|F7L--JLJL-----7|L-----7-L7FJ7|L.FJL||
|
||||
FF7-FJF--77L-JL-J||LJL7L-JLJLJL7JF7LJL-JLJLJF---JF7LJ|F--JL--J||F7L7-|7L77.FL7L7L-JL-J.F--7F-7LJ||F-J|FJL-7F7F-------JL------JF7|||JL7F|.|L|
|
||||
LFF7||L-7L7F-----J|F--JF7F----7|FJ|F---7F7F7L---7|L--JL--7F7F7||||F7F|J-||F7J|FJF-----7L-7|L7L-7LJ|F7LJF-7LJ|L7JF7F7F7.F7.F7F7|LJL-7.F-F-J.|
|
||||
.FJL--7-L7|L------JL-7FJ||F--7||L7LJF-7LJ||L7F-7LJF------J|LJ||||||L7J-F7J7LFLJ7L----7L--JL7|F7L-7||L7FJFJF7L-JFJLJLJL-JL-J||LJF---J-J|L-7LJ
|
||||
FL---7|F7||F7F---7FF7|L7||L-7LJ|JL-7|FJF7LJFJ|7|F7L-7F7F7F|F-J|LJLJFJJ.||||||F-7JF7F7L---7FJLJ|F-JLJ|LJ-L-JL---JF-----7F7F7LJF7|F--7-FJ7L7.|
|
||||
7-LLFJLJLJLJLJF-7L-JLJFJLJF7L-7L-7-LJL-JL-7L-JFJ||F7LJLJL7||F7|F--7|JLF|L77--|FJFJLJL----JL7F7||F77F----7F------JF---7LJLJL--JLJ|F-J-|.|7LJJ
|
||||
L--L|F-7F-7F7FJ-L-7F-7L77FJL7FJF7L------7FJF7-|FJLJ|F-7F-J|LJLJL-7||7LFJFJ.F7|L-JF7F------7LJLJLJL7L---7LJF7-F7F7|F-7L7F7F7F----JL-7FJ-J|FJ|
|
||||
|-|.LJFJL7LJ|L-7F-J|FJFJFJF7LJFJ|F-----7|L-JL7|L--7|L7|L-7|F--7F-JLJF-JFJ|F-7L---JLJF-----JF7F-7F7L7|F7|F-JL-JLJ|||FL7LJ||LJF------JJ|LL7LF-
|
||||
L--L-FJF7|F7L7FJL7FJ|FJJL-JL7FJFJ|F-7F-JL-7F7||F7FJL7|L-7||L-7|L--77L-7|F7L7L7LF7JF|L---7F-J||L||L7L7||LJF7F7F--J|L-7|F-J|F-J.F--7|JFFJ.7-LJ
|
||||
.|-|.L7|LJ|L7|L-7|L7LJF---7FJL7L-JL7|L-7F7LJ|||||L-7|L-7LJ|F-JL---JF--JLJL7|FJ7|L7FF7F7JLJJFJL7LJ7L7LJL--JLJ||7F7|F-JLJ|FJL7F7|F-JF7-F7FJJ..
|
||||
F.FF-FJL-7L7LJF-JL-JF7L--7|L--JF---J|F-J||F7LJLJ|F-JL--J-FJ|F7F--7|L----7FJ||F7L7|FJLJL----JF7L7F7-L7F-----7||FJLJL7F---JF7LJLJL--JL-JL77FL7
|
||||
77-|LL-7FJLL-7|F-7LFJ|F7FJL7F7-L7F-7||F-JLJL7F7.LJ-F7F7F7L7||||F-J7F-7F7||FJ|||FJ||F--7F---7|L7||L--J|F---7|||L-7F-J|F---JL-7F---------J-FJ.
|
||||
L7.L7LFJL7|FFJ|L7L7L7LJ|L7FJ||F7|||||||F---7LJL---7|||LJL-JLJ|||F-7L7|||||L7LJ||FJLJF-J|F--JL7||L----JL--7LJLJFFJL--JL-----7|L-----7|FLJJ|J.
|
||||
|L--J-L7FJ77|FJLL7|JL-7L-JL-J|||LJFJLJ||F7FL------J|||F--7F--J|LJFJFJLJ||L-JF-J||7F7L--JL---7|||.F7F7.F-7L7F7F-JF7F7F---7F-J|F-----J777JL|.F
|
||||
J7..|-FLJ|F7LJF--J|F--JF-7F-7LJL7FL77FJLJL7F------7||LJF-JL--7|F-JFJF-7LJF--JF7|L7||F7F---7LLJLJFJLJL7L7|FJ||L7FJLJ|L--7LJLFJL--------7J.JF|
|
||||
FF--|-7FFF||F7L--7LJF--JJLJ|L--7L-7L-JF--7LJF--7F-J||F7L7F7F-J|L7|L-J7|F-JF7FJ||FJ||||L--7L-7F7FJF--7L-JLJF||FJL--7|F--J-F7L-7F-7F7F--J77.J|
|
||||
FLJ-L-F7FF|LJL7F7L-7L7F-7LF7F-7|F7L--7L-7|F7L-7LJF7|||L7LJ|L7FJFJF7F7FJL--J|L7LJ|-||||FF7|F-J|LJFJF7L-7F---JLJF7F7||L7F--JL-7LJFJ|LJJLLFJ--7
|
||||
7J7.L|LL-JL7F7LJ||FJFJL7L7||L7|LJL-7|L7FJLJL--JF-J||||FJJFJFJ|FJ.||||L-7F-7L7L7FJFJ||L7|||L7FL--JL||F7LJF---7FJLJLJL-J|F---7L-7L7L7||FFF7|J|
|
||||
F-F7LFF7L-FJ||F7L-JFJF7L7LJ|FJL----JF7LJF7FF-7.|F-J||||F7L7|FJL7FJ||L-7||JL-JFJL7L7||FJ||L7L7F7F--JLJL7JL--7LJF7F7F7F7|L--7|F-JFJFJ-J---LJF|
|
||||
L-.LJ|L77LL7|||L7F7|||L7L-7LJF------JL--JL7L7L7||FFJ||LJL7|||F-JL7|L-7LJL7F7FJF-JFJ||L-JL7|FJ||L-7F--7L7F-7L--JLJLJLJLJF--JLJF7L-J-7JJJ.L-L-
|
||||
|-|LF7.LF7LLJ||FLJ|L7L7L--JF7|F-----------JFJFJ||FJFJL--7||LJL7F7||F7L--7LJ||FJF7|FJL---7LJL7||F7LJF-JFJL7L--------7F-7L--7F7|L-7JF77-JF.LL7
|
||||
7|L|.||.J77J.LJ-F-JFJ7L--7FJLJL--------7F77|FJFJLJFJF---J||F--J||||||LF-JF-J||FJ||L7F7F7L-7FJ||||F-JF7L-7L--7F7-F7JLJ.L7F-J|LJF7|FJ|7FFL7-LJ
|
||||
|7F|F7|7JF7-FJF|L--J7F---JL7F---------7LJL-JL7L7F-JFL--7FJ|L7F-J|||||FJF7|F7||L7||FJ||||JFJL7||||L7FJ|F7L--7LJL7|L-7F7JLJF-JF-JLJ|FJF-7-F.FJ
|
||||
F-LJ|J7|--JF7-F7FFF--JF--7FJL7F7F7F--7L-7F--7|FJL--7F-7||FJFJL-7|||||L-J|LJLJ|FJ||L7|||L7L-7||||L7||JLJL--7|F-7LJF-J|L7F7L-7|.F7FJ|FJFJ|JFF7
|
||||
|-|LJF7||.J-|.||FFJF-7|F-JL7F||LJLJF7L7FJL-7LJ|F---JL7||||FJF7FJLJLJ|F7FJF---JL7|L7|||L7|F-JLJ||FJLJF7F---JLJLL--JF-JFJ|L-7||FJLJFJL7|F7F7LJ
|
||||
L7L7|FJL-7.-JL|L7L-J|LJ|F7FJFJ|F---JL-JL---JF-JL--7FFJLJ|||FJ|L----7|||L7|F7F7-|L-J|||FJ|L--7FJ||F--JLJF-7F7F-----JF-J||F-J|||F--JF7|LJLJL7J
|
||||
LJFF---|.|7FF.L7L--7F-7LJLJJL-JL----7F7F7F7-L-7F--JFJF--J|||FJF7F-7|||L7|LJ|||FJF-7|||L7L-7FJ|FJ|L-7F-7|FJ|LJF7F-7FJF--JL--JLJL---JLJF----JJ
|
||||
||LJ..LL-.J-FF7L--7|L7L----7F7F7F---J|||||L7F7||F-7L7|F-7|LJL7||L7|||L7LJF-J|LJFJ7LJ||FJF-JL7LJFJF7|L7||L-JF-JLJF|L-JF7F--7F--------7L--7JL-
|
||||
|J7..||.|FJFFJ|F7L||-L----7LJLJLJF---JLJ||FJ||||L7|FJ||FJL--7|||FJ||L7L-7|F7|F-JF7F7||L7|F7-L7FJF||L-JLJFF7L----7L7F-J|L-7|L7F-----7L7F7|.||
|
||||
|.LF-F7FLJLLL7LJL-J|F-----JF-----JLF----J||FJ|||FJ||FJ|L7F7FJ||||FJL7L7FJ||||L-7|LJ|||FJ|||F7|L-7|L7F7F--JL7F---JFJ|F7L7FJL7LJF7F-7|FLJLJ-|7
|
||||
F7JL|.|||J..LL7F--7|L------JF------J|F7F7|||FJ||L7|||-|FJ||L7|||||.||FJL7|||L7FJ|F-J||L7|||||L7FJ|FJ||L---7LJF--7L7LJL7|L7FJF7||L7LJ-LJFL|..
|
||||
-|-F-F-|77-7FFLJF7||FF7F7JF-JF7F-7F7FJ||||||L7||FJ|||FJL7|L7|LJ||L7FJ|F7|LJL7||FJ|F7|L7|||LJL7|L7|L7|L7F-7L--JF7L7L7F-J|FJ|FJ||L7L7JJFLJ---|
|
||||
L-.F-7L7|LF-7F7FJLJL-JLJL-JF7||L7LJ|L7|||||L7LJ|L7||||-FJL7|L-7|L7||FJ||L7F7|||L7|||L7||||F-7|L7LJF||7|L7|F7F-J|FJF|L-7||FJL7|L7|FJF7-F--J.7
|
||||
-J77FF7L7FL7LJLJF-----7F7F7|||L-JJFJFJLJ||L7|F-JFJ||||FJF7||F-J|FJ||L-JL7LJ|||L-JLJL7|LJ||L7LJFJF--JL7L7|LJ|L-7||F-JF7|LJL-7||FJLJFJJ||7.|F|
|
||||
FJ|LLJF-J77L----J|F7F-J|||||LJF---JFJLF-J|.LJ|F-JFJ|||L7||||L7FLJ7LJF7F-JF-J||F-7|F-J|F-JL7|F7L7L--7FJFJL-7|F7|LJL7FJLJF7F7LJ|L-77||LFF-F-FL
|
||||
77J|FF|JL|F-------JLJF-JLJ||F-JF--7|F7|F7|F--JL-7|FJ|L7||||L7L--7F--JLJF7L-7LJ|FJFJF7||F7FJLJ|FJF--JL7L7F7||||L-7FJL-7.|LJL-7|F-J-J|-FJFL7|7
|
||||
|J-F--J.FFL-7F-7F7F7FJF7F-J||F7|F-J||||||||F-7F-JLJFJFJ||LJFL7F-JL--7F7||F7L--JL7|FJ|||||L7F-JL7L7F7FJJLJ||LJ|F-J|F-7L7L7F--J|L7..L7||J|FJLJ
|
||||
J--7.|7.JFF-J|-||||||FJLJF7|LJLJL-7LJ|||||LJFJL--77L7|FJL-7F-JL---7FJ||||||F7F7FJ|L7|||||FJL7F-JFJ||L---7||F-JL-7|L7L7L-J|F77L7|-L.|FF7|LL||
|
||||
L-|.-J7-F-|F7|FJ|||LJL7F7|||F--7F7L7FJ||LJ|FJF7F-JF-J|L7F7|L7F7F--J|FJ||||||||||FJFJ|||||L7FJL-7L7||F-7FJ|||F7F-JL-J.|F7FJ||F7LJ7F--7JLJ7LF|
|
||||
|JL7J||.J-LJ||L-JLJF7FJ|||LJ|F7LJL-JL7||F--JFJ|L-7L-7|FJ|||FJ||L-7FJL7LJ||||||||L7|7LJLJL7||F7FJ-LJ|L7|L7|||||L-----7LJLJFJ||L--77|J|-FJF-L7
|
||||
J-|7LJJF7FJ-||FF---JLJFJ||LFJ|L7F7F7FJ||L7F7|FJF7L7J||L7|||L7||F-J|F-JLFJ|||||||J|L---7F-J|||LJF---JFJ|FJLJLJ|F7F-7FJF7F7L7LJF-7L7-F..L7F7|J
|
||||
|LL-.LF-77.-LJFJF-7F7FJ.||FJFJFJ|LJ|L7LJFJ||||FJL7L7|L7|||L7LJ|L-7|L--7|FJLJ|||L7L7F7FJ|F7||L-7|F-7FJ||L-7F7FJ||L7LJL|LJL-JF7|LL7|.LF|-J|JLJ
|
||||
L.-J.FJ|LF77-FJFJ-||LJF7||L7|.L7L7FJFJF7|FJ|||L7||FJ|FJLJL7|F-JF7||F-7|||F-7||L7L7LJ|L7||||L7FJ||FJ|-FJF7LJ||FJL7L---JF7F7FJ|L-7LJ7--JF|LF7J
|
||||
F7J|F7J7---7FL7L7-LJF-JLJ|FLJF-JFJL7L7||LJ7LJL-JFJL7|L-7|JLJL-7||||L7||LJL7LJL7L7|F-JFJLJ||FJL7||L7L7|FJL--JLJLLL7F-7FJLJ|L7|F7L7JL-J-F--|-J
|
||||
FF.FLJL-7.LJ-LL7|7F-JF7F7|F7FJF7L-7L7LJL----7F--JF7|L-7L7F7F--J||||FJ|L--7L-7FJLLJ|F7L-7FJ|L7FJLJLL7||L------77F7|L7|L--7|FJ||L-J7-L-7|L-J||
|
||||
-|7-|.-7J-7-FJFLJ-L7FJLJLJ||L7||F7|FJF------JL-7FJ|L7|L7|||L--7||||L7L7F7|F-J|-F7FJ||F7|L7L7|L7F--7LJ|F7F---7L7|LJFJL---JLJFJ|JLLJ--7L|-7F--
|
||||
|L7F77FJF-J.||FJF|J||F---7|L-J|LJLJL7L----7F7F-JL7L7L-7|||L---J|||L7||LJLJL-7L7|||FJ||||7|FJL-JL-7L--J||L--7L7||F7L-------7|FJJ7LJ-FJFLL-|J.
|
||||
L-7FJ7F7F|77.77LJJ|LJL--7LJF7FJ-F---JF-7F7LJ||F-7|FJF-J|||F7F-7|||FJL---7F--JFJ|LJL7|||L7|L-7F7F7L-7F7|L7F7L7LJLJ|F------7|LJJLF.|F-777.L-J.
|
||||
||JLJ-L7LJL7-JJ-|-LL-F7-L-7||L-7L---7L7|||F7|LJFJ|L7L-7||LJ|||||LJ|F7F7FJ|F7FJFL7F7||||FJ|F-J|LJL--J||L7||L7L---7|L-----7||JL|LF7|7.LL-7-7.F
|
||||
L|7FL||L|L7||J7.L7LLFJL---J||F7L7F--JFJLJ||||F-JFJFJF7|||F7LJFJL7FJ|LJ||JLJ|L--7||LJLJ|L7|L7FJF7F7F7|L7|LJFJF7F-JL7F-7F7|LJ|-F--L7JFLJJ|||-7
|
||||
.|--FL|FF7L---|..|FFJF---7FJ|||FJL-7FJF-7||LJL-7|FJFJ|||||L--JF7|L7L-7LJF--JF7FJ|L---7L7||FJ|FJ||||||FJL7-L7||L--7|L7||LJJ-L-L7JJJ.|J|F77.||
|
||||
F|.LJ.F-F7J||.L77--L7|F--J|F||LJ|F-JL-JFJLJF---J|L7||LJLJ|F--7|||FJF7|F7L--7|LJ-|F7F-JFLJLJ.LJ-LJ|||||F7|F-J||F7FJ|FJ|||L|J7|7||J.77||LLL7-L
|
||||
FF-77.L7LL--|-|L7-77LJL--7L7||F--JF-7F7L7F7L-7F7L7|L7F7J|LJF-J|||L7||LJL-7FJL7F-J||L--7|.|JF|J-FL||LJLJLJ|F7|||LJFJL7LJ7FJ---77JF|||7|7.|..J
|
||||
|LL777.--F-7J7|J.FJL7LLF-JFJ||L--7|FJ|L7LJL7FJ||FJL7LJL7F77L-7|LJFJ||F---JL-7|L7FJL-7FJJ-L7LJ-77-LJJ|LF--J||||L-7L-7L---77|L|LJ7FLJ|7..F7F||
|
||||
L-J||J.J.LJ|L77.FF--|FL|F7|.LJF--J|L7L7L7F-JL7|LJF7L7F7|||F7-||F-JFJ|L--7LF-J|FJL--7LJ|JF-77FF|F-|LF-FJF-7|||L7FJF-JF-7FJJ7.L-F7-JLL7--7---L
|
||||
L|LL7FF.F|F.|||7L7JJ|FJLJ|L7F-JF-7L7L7L7LJF--JL7FJL-J||LJLJL7||L7FJFL7F7|FL-7|L7F7FJ-L7.JF|F-|J||JF7|L-J.LJ||FJ||L7FJFLJJ.FF7F7JLFJL-..LLLJL
|
||||
.7J-|-F7F77FJJJ7.|JF||LFFJFJL-7|FJFJLL7L7J|F-7FJL7F-7|L7F7F-J||FJL7F-J|LJ7-FJ|FJ||L7J-L7||-7.--J7FJL-JL|7LFLJL7L-7LJ|LJJ|J7|FL--7J7J-J.||L7L
|
||||
.L.7.LLF-JLF|-77-|-FLJ.FL7L-7FJ||FJ|-|L7L7||FJ|F-J|L|L7|||L7.LJL-7|L-7L7-7-|FJL7||FJ.L-L||.|---J|FL-7.FJJ-F---JF-J|FJJJ||FF77.|L|LJ.7F7-|J7J
|
||||
|.FL-F-JJ.FL--JF.L7|JJF|LL7FJL7||L-7F-JL7|LJL-JL7FJFJFJLJL-J.|J|.||J.L7L-7JLJ-L||LJ||JF7|F-FJ-.FF-JFL|7JJ-L7F-7L7F-7-F-JLFJ|LL77LF7|F7LL|L7-
|
||||
F-J|.||7F7LJFL7J..FJ|L7J|.LJFLLJL-7|7|L|||F-7J.||L7L7L-7.||-7J.L-LJ7-.L--J7|JJFLJJ.JJ-L-J-7L.L|7JLF|J||7.F7LJLL-J77JFJ-JLL7.7.--.LJ|LJ--7.||
|
||||
7JJFF-J|-7-7|FJLJ-J.F7..FLL|7FL|J.||LF--JLJFJJ-F|FJFJF7L7--F--||FJJ||-JLJ7LJ..FLL--J|..|-LLJ7L||7LF7L|.--L-7|F|||LJF-JL7.FJL7-L7.F|F7||L|JLJ
|
||||
|JF-J-LJL|.|L-L7..F--7-L7|L-7FL|LFLJFL--7F-JJ-FFJ|-L7||FJJFLJ7.7LL|FJ7F7J|7FF-J|J.|.-J-F--L7L-----|JFLF.L-L-L7|L--|LJ.7-FJJ-|7.FF|7J|F--FJ7J
|
||||
|-LL7|L|FJ-JF|L|77||JJL||FL7L77|-FLJ||LLLJJLL7FL7|F-J||L7FJ7-FJJ--7|-7|F7LL7LL7L-|.-.|-|J7.LJJ|J..L.J-J7.FFF.L|..FJFL-|.LLF--J-FJJ.-LL-7|.F7
|
||||
LF.|-F.-7JJF7.|J|F---7-L--J77JL--J.FLF.J-JF77F77LJL--J|FJJ|L-L|-F7L.7L-L77F7.F7|7|--7JJ.F-L-FF7JFF77.|.--FFJL-LFF77|..L7JLJ..LLL.F7.JL--7F-F
|
||||
FF.J7LL-7.FL77F-|777LJ7||--JJF||FLF-F.L-|FL7-|-LJ-|L|L||JLJL7F----|-J|.LLJLJ7F|LFLJ.-J-F|.|JLJJF|LJF7-7.F||7|J|...FL-7-JJFF-77.L77F|F7||LL.|
|
||||
|LL|-.L-J7JLJ-JJLL7--J----LJ.|L-L-L-L-LJLJ-L-|J.J.|.-JLJ77.LL|J-|-LF-LJ.L-|7LF--|JLJ-L---JJ.FLLLJ7-FJ.L.LLJ-|L|.LJ-LJJLL7.LJLJ-LF-7LJ-JJJ--.
|
15
2023/15/15.rs
Normal file
15
2023/15/15.rs
Normal file
|
@ -0,0 +1,15 @@
|
|||
fn hash(s: &str) -> u32 {
|
||||
let mut value: u8 = 0;
|
||||
for c in s.chars() {
|
||||
value = value.wrapping_add(c as u8);
|
||||
value = value.wrapping_mul(17);
|
||||
}
|
||||
value as u32
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let input: &str = include_str!("input.txt");
|
||||
let steps = input.split(",");
|
||||
let part1: &u32 = &steps.map(hash).sum();
|
||||
println!("{:?}", part1);
|
||||
}
|
1
2023/15/input.txt
Normal file
1
2023/15/input.txt
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue