diff options
Diffstat (limited to '2023')
54 files changed, 13481 insertions, 0 deletions
diff --git a/2023/Go/.gitignore b/2023/Go/.gitignore new file mode 100644 index 0000000..f40e964 --- /dev/null +++ b/2023/Go/.gitignore @@ -0,0 +1,22 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# Go workspace file +go.work +go.work.sum + +# env file +.env diff --git a/2023/Go/README.md b/2023/Go/README.md new file mode 100644 index 0000000..13e51cf --- /dev/null +++ b/2023/Go/README.md @@ -0,0 +1,4 @@ +# Advent of Code 2023 +[](https://github.com/DJOLEARY/AoC_2023/actions/workflows/go.yml) + +Done with the aim of learning golang diff --git a/2023/Go/Taskfile.yml b/2023/Go/Taskfile.yml new file mode 100644 index 0000000..a89c4c3 --- /dev/null +++ b/2023/Go/Taskfile.yml @@ -0,0 +1,17 @@ +# https://taskfile.dev + +version: '3' + +tasks: + + default: + desc: "Prints this message" + cmds: + - cmd: task --list-all + + test:coverage: + desc: Runs tests and produce coverage report + cmds: + - mkdir --parents out + - go test -coverprofile=out/coverage.out ./... + - go tool cover -html=out/coverage.out diff --git a/2023/Go/go.mod b/2023/Go/go.mod new file mode 100644 index 0000000..33ff07f --- /dev/null +++ b/2023/Go/go.mod @@ -0,0 +1,3 @@ +module github.com/DJOLEARY/Advent_of_Code + +go 1.22.3 diff --git a/2023/Go/internal/day_01/day_01.go b/2023/Go/internal/day_01/day_01.go new file mode 100644 index 0000000..c646a4d --- /dev/null +++ b/2023/Go/internal/day_01/day_01.go @@ -0,0 +1,116 @@ +package day_01 + +import ( + "errors" + "os" + "strconv" + "strings" +) + +func Solve() { + filename := "../_input/day_01.txt" + content := readFile(filename) + + numbers := []int{} + + lines := strings.Split(content, "\n") + for _, line := range lines { + first_num, last_num, err := findNumbers(line) + + if err != nil { + continue + } + + num_str := first_num + last_num + num := strToInt(num_str) + numbers = append(numbers, num) + } + + acc := accumulate(numbers) + + println(acc) +} + +func readFile(filename string) string { + content, err := os.ReadFile(filename) + + if err != nil { + panic(err) + } + + return string(content) +} + +var num_map = map[string]string{ + "zero": "0", + "0": "0", + "one": "1", + "1": "1", + "two": "2", + "2": "2", + "three": "3", + "3": "3", + "four": "4", + "4": "4", + "five": "5", + "5": "5", + "six": "6", + "6": "6", + "seven": "7", + "7": "7", + "eight": "8", + "8": "8", + "nine": "9", + "9": "9", +} + +func findNumbers(line string) (string, string, error) { + if line == "" || line == "\n" { + return "", "", errors.New("Empty line") + } + + found_numbers := []string{} + window_size := 5 + for i := range line { + window_end := i + window_size + if window_end > len(line) { + window_end = len(line) + } + sub_str := line[i:window_end] + + for key, value := range num_map { + if strings.HasPrefix(sub_str, key) { + found_numbers = append(found_numbers, value) + } + } + } + + if len(found_numbers) == 0 { + return "", "", errors.New("No numbers found") + } + + first := found_numbers[0] + last := found_numbers[len(found_numbers)-1] + + return first, last, nil +} + +func accumulate(numbers []int) int { + acc := 0 + + for _, num := range numbers { + acc += num + } + + return acc +} + +func strToInt(str string) int { + num, err := strconv.ParseInt(str, 0, 0) + + if err != nil { + panic(err) + } + + return int(num) +} diff --git a/2023/Go/internal/day_01/day_01_test.go b/2023/Go/internal/day_01/day_01_test.go new file mode 100644 index 0000000..8063619 --- /dev/null +++ b/2023/Go/internal/day_01/day_01_test.go @@ -0,0 +1,31 @@ +package day_01 + +import ( + "testing" +) + +type input string +type answer string + +func TestFindNumbers(t *testing.T) { + data := map[input]answer{ + "1abc2": "12", + "pqr3stu8vwx": "38", + "a1b2c3d4e5f": "15", + "treb7uchet": "77", + } + + for input, expected := range data { + actual_first, actual_last, err := findNumbers(string(input)) + + if err != nil { + t.Error("find_numbers returned an error") + } + + actual := actual_first + actual_last + + if actual != string(expected) { + t.Errorf("Expected %s, got %s", expected, actual) + } + } +} diff --git a/2023/Go/internal/day_02/part_01/part_01.go b/2023/Go/internal/day_02/part_01/part_01.go new file mode 100644 index 0000000..9efe20f --- /dev/null +++ b/2023/Go/internal/day_02/part_01/part_01.go @@ -0,0 +1,138 @@ +package part_01 + +import ( + "os" + "regexp" + "strconv" + "strings" +) + +type cubes struct { + red int + blue int + green int +} + +func Solve() { + contents, err := os.ReadFile("../_input/day_02.txt") + if err != nil { + panic(err) + } + + lines := strings.Split(string(contents), "\n") + possibleGameIds := processLines(lines) + + println(accumulate(possibleGameIds)) +} + +func processLines(lines []string) []int { + var possibleGames []int + + maxCubes := cubes{red: 12, blue: 14, green: 13} + + for _, line := range lines { + if line == "" || line == "\n" { + continue + } + + shownCubes := convertLineToCubes(line) + + isPossible := isPossibleGame(shownCubes, maxCubes) + if isPossible { + gameId := getGameId(line) + possibleGames = append(possibleGames, gameId) + } + } + + return possibleGames +} + +func convertLineToCubes(line string) []cubes { + var shownCubes []cubes + + redRegex := regexp.MustCompile(`(\d+) red`) + blueRegex := regexp.MustCompile(`(\d+) blue`) + greenRegex := regexp.MustCompile(`(\d+) green`) + + for _, round := range strings.Split(line, ";") { + var cubes cubes + + redMatches := redRegex.FindStringSubmatch(round) + if redMatches != nil { + red, err := strconv.Atoi(redMatches[1]) + if err != nil { + panic("Could not convert red to int: " + redMatches[1]) + } else { + cubes.red = red + } + } + + blueMatches := blueRegex.FindStringSubmatch(round) + if blueMatches != nil { + blue, err := strconv.Atoi(blueMatches[1]) + if err != nil { + panic("Could not convert green to int: " + blueMatches[1]) + } else { + cubes.blue = blue + } + } + + greenMatches := greenRegex.FindStringSubmatch(round) + if greenMatches != nil { + green, err := strconv.Atoi(greenMatches[1]) + if err != nil { + panic("Could not convert green to int: " + greenMatches[1]) + } else { + cubes.green = green + } + } + + shownCubes = append(shownCubes, cubes) + } + + return shownCubes +} + +func isPossibleGame(shownCubes []cubes, maxCubes cubes) bool { + for _, cubes := range shownCubes { + if cubes.red > maxCubes.red { + return false + } + + if cubes.blue > maxCubes.blue { + return false + } + + if cubes.green > maxCubes.green { + return false + } + } + + return true +} + +func getGameId(line string) int { + regex := regexp.MustCompile(`^Game (\d+):`) + matches := regex.FindStringSubmatch(line) + if matches == nil || len(matches) < 2 { + println(matches) + panic("No game id found in line: '" + line + "'") + } + + gameId, err := strconv.Atoi(matches[1]) + if err != nil { + panic("Could not convert game id to int: " + matches[1]) + } + + return gameId +} + +func accumulate(gameIds []int) int { + var acc int + + for _, gameId := range gameIds { + acc += gameId + } + + return acc +} diff --git a/2023/Go/internal/day_02/part_01/part_01_test.go b/2023/Go/internal/day_02/part_01/part_01_test.go new file mode 100644 index 0000000..33e5fbf --- /dev/null +++ b/2023/Go/internal/day_02/part_01/part_01_test.go @@ -0,0 +1,102 @@ +package part_01 + +import ( + "testing" +) + +type data struct { + gameId int + isPossible bool + shownCubes []cubes + line string +} + +var testInput = []data{ + { + gameId: 1, + isPossible: true, + shownCubes: []cubes{ + {red: 4, blue: 3}, + {red: 1, blue: 6, green: 2}, + {green: 2}, + }, + line: "Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green", + }, + { + gameId: 2, + isPossible: true, + shownCubes: []cubes{ + {blue: 1, green: 2}, + {red: 1, blue: 4, green: 3}, + {blue: 1, green: 1}, + }, + line: "Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue", + }, + { + gameId: 3, + isPossible: false, + shownCubes: []cubes{ + {red: 20, blue: 6, green: 8}, + {red: 4, blue: 5, green: 13}, + {red: 1, green: 5}, + }, + line: "Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red", + }, + { + gameId: 4, + isPossible: false, + shownCubes: []cubes{ + {red: 3, blue: 6, green: 1}, + {red: 6, green: 3}, + {red: 14, blue: 15, green: 3}, + }, + line: "Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red", + }, + { + gameId: 5, + isPossible: true, + shownCubes: []cubes{ + {red: 6, blue: 1, green: 3}, + {red: 1, blue: 2, green: 2}, + }, + line: "Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green", + }, +} + +func TestConvertLineToCubes(t *testing.T) { + for _, data := range testInput { + actualCubes := convertLineToCubes(data.line) + + if len(data.shownCubes) != len(actualCubes) { + t.Errorf("Expected length of shownCubes to be %d, got %d", len(data.shownCubes), len(actualCubes)) + } + + for i, cubes := range data.shownCubes { + if cubes != actualCubes[i] { + t.Errorf("Expected shownCubes to be %v, got %v", cubes, actualCubes[i]) + } + } + } +} + +func TestIsPossibleGame(t *testing.T) { + maxCubes := cubes{red: 12, blue: 13, green: 14} + + for _, data := range testInput { + actualIsPossible := isPossibleGame(data.shownCubes, maxCubes) + + if data.isPossible != actualIsPossible { + t.Errorf("Expected isPossibleGame to be %t, got %t for game id %d", data.isPossible, actualIsPossible, data.gameId) + } + } +} + +func TestGetGameId(t *testing.T) { + for _, data := range testInput { + actualGameId := getGameId(data.line) + + if data.gameId != actualGameId { + t.Errorf("Expected gameId to be %d, got %d", data.gameId, actualGameId) + } + } +} diff --git a/2023/Go/internal/day_02/part_02/part_02.go b/2023/Go/internal/day_02/part_02/part_02.go new file mode 100644 index 0000000..ffb9691 --- /dev/null +++ b/2023/Go/internal/day_02/part_02/part_02.go @@ -0,0 +1,114 @@ +package part_02 + +import ( + "os" + "regexp" + "strconv" + "strings" +) + +type cubes struct { + red int + blue int + green int +} + +func Solve() { + contents, err := os.ReadFile("../_input/day_02.txt") + if err != nil { + panic(err) + } + + lines := strings.Split(string(contents), "\n") + answer := processLines(lines) + + println(answer) +} + +func processLines(lines []string) int { + var answer int + + for _, line := range lines { + if line == "" || line == "\n" { + continue + } + + shownCubes := convertLineToCubes(line) + + maxCubes := getMaximumCubes(shownCubes) + power := getPower(maxCubes) + answer += power + } + + return answer +} + +func convertLineToCubes(line string) []cubes { + var shownCubes []cubes + + redRegex := regexp.MustCompile(`(\d+) red`) + blueRegex := regexp.MustCompile(`(\d+) blue`) + greenRegex := regexp.MustCompile(`(\d+) green`) + + for _, round := range strings.Split(line, ";") { + var cubes cubes + + redMatches := redRegex.FindStringSubmatch(round) + if redMatches != nil { + red, err := strconv.Atoi(redMatches[1]) + if err != nil { + panic("Could not convert red to int: " + redMatches[1]) + } else { + cubes.red = red + } + } + + blueMatches := blueRegex.FindStringSubmatch(round) + if blueMatches != nil { + blue, err := strconv.Atoi(blueMatches[1]) + if err != nil { + panic("Could not convert green to int: " + blueMatches[1]) + } else { + cubes.blue = blue + } + } + + greenMatches := greenRegex.FindStringSubmatch(round) + if greenMatches != nil { + green, err := strconv.Atoi(greenMatches[1]) + if err != nil { + panic("Could not convert green to int: " + greenMatches[1]) + } else { + cubes.green = green + } + } + + shownCubes = append(shownCubes, cubes) + } + + return shownCubes +} + +func getMaximumCubes(shownCubes []cubes) cubes { + var maxCubes cubes + + for _, cubes := range shownCubes { + if cubes.red > maxCubes.red { + maxCubes.red = cubes.red + } + + if cubes.blue > maxCubes.blue { + maxCubes.blue = cubes.blue + } + + if cubes.green > maxCubes.green { + maxCubes.green = cubes.green + } + } + + return maxCubes +} + +func getPower(maxCubes cubes) int { + return maxCubes.red * maxCubes.blue * maxCubes.green +} diff --git a/2023/Go/internal/day_02/part_02/part_02_test.go b/2023/Go/internal/day_02/part_02/part_02_test.go new file mode 100644 index 0000000..6952899 --- /dev/null +++ b/2023/Go/internal/day_02/part_02/part_02_test.go @@ -0,0 +1,84 @@ +package part_02 + +import ( + "testing" +) + +type data struct { + shownCubes []cubes + maxCubes cubes + line string +} + +var testInput = []data{ + { + shownCubes: []cubes{ + {red: 4, blue: 3}, + {red: 1, blue: 6, green: 2}, + {green: 2}, + }, + maxCubes: cubes{red: 4, blue: 6, green: 2}, + line: "Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green", + }, + { + shownCubes: []cubes{ + {blue: 1, green: 2}, + {red: 1, blue: 4, green: 3}, + {blue: 1, green: 1}, + }, + maxCubes: cubes{red: 1, blue: 4, green: 3}, + line: "Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue", + }, + { + shownCubes: []cubes{ + {red: 20, blue: 6, green: 8}, + {red: 4, blue: 5, green: 13}, + {red: 1, green: 5}, + }, + maxCubes: cubes{red: 20, blue: 6, green: 13}, + line: "Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red", + }, + { + shownCubes: []cubes{ + {red: 3, blue: 6, green: 1}, + {red: 6, green: 3}, + {red: 14, blue: 15, green: 3}, + }, + maxCubes: cubes{red: 14, blue: 15, green: 3}, + line: "Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red", + }, + { + shownCubes: []cubes{ + {red: 6, blue: 1, green: 3}, + {red: 1, blue: 2, green: 2}, + }, + maxCubes: cubes{red: 6, blue: 2, green: 3}, + line: "Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green", + }, +} + +func TestConvertLineToCubes(t *testing.T) { + for _, data := range testInput { + actualCubes := convertLineToCubes(data.line) + + if len(data.shownCubes) != len(actualCubes) { + t.Errorf("Expected length of shownCubes to be %d, got %d", len(data.shownCubes), len(actualCubes)) + } + + for i, cubes := range data.shownCubes { + if cubes != actualCubes[i] { + t.Errorf("Expected shownCubes to be %v, got %v", cubes, actualCubes[i]) + } + } + } +} + +func TestGetMaximumCubes(t *testing.T) { + for _, data := range testInput { + actualMaxCubes := getMaximumCubes(data.shownCubes) + + if actualMaxCubes != data.maxCubes { + t.Errorf("Expected maxCubes to be %v, got %v", data.maxCubes, actualMaxCubes) + } + } +} diff --git a/2023/Go/internal/day_03/part_01/part_01.go b/2023/Go/internal/day_03/part_01/part_01.go new file mode 100644 index 0000000..49837b3 --- /dev/null +++ b/2023/Go/internal/day_03/part_01/part_01.go @@ -0,0 +1,123 @@ +package part_01 + +/** + * TRIED: + * 530923 + */ + +import ( + "os" + "strconv" + "strings" +) + +const USE_SAMPLE = true + +func Solve() { + var content []byte + if USE_SAMPLE { + content, _ = os.ReadFile("../_input/day_03_part_01_sample.txt") + } else { + content, _ = os.ReadFile("../_input/day_03.txt") + } + lines := strings.Split(string(content), "\n") + + validNumbers := walkLines(lines) + + answer := 0 + for _, number := range validNumbers { + answer += number + } + + println(answer) +} + +func walkLines(lines []string) []int { + var validNumbers []int + + for y := 0; y < len(lines); y++ { + line := lines[y] + + if line == "" || line == "\n" { + continue + } + + // Counts as a symbol... + filteredLine := strings.ReplaceAll(line, "\r", "") + + previousWasNumber := false + number := "" + for x := 0; x < len(filteredLine); x++ { + char := filteredLine[x] + + _, err := strconv.Atoi(string(char)) + isNumeric := err == nil + + if isNumeric { + previousWasNumber = true + number += string(char) + continue + } + + if !previousWasNumber { + continue + } + + isValid := checkValidity(lines, x, y, len(number)) + if isValid { + num, _ := strconv.Atoi(number) + validNumbers = append(validNumbers, num) + } + + println(number) + + previousWasNumber = false + number = "" + } + } + + return validNumbers +} + +// N = number +// k = numOfDigits + 1 +// (x-k,y-1) (x-1,y-1) ( x ,y-1) +// (x-k, y ) N ( x , y ) +// (x-k,y+1) (x-1,y+1) ( x ,y+1) +func checkValidity(lines []string, x int, y int, numOfDigits int) bool { + + for i := max(y-1, 0); i <= y+1; i++ { + + var debugLine string + + for j := max(x-(numOfDigits+1), 0); j <= x; j++ { + + if lineExists := len(lines) > i; !lineExists { + continue + } + + if charExists := len(lines[i]) > j; !charExists { + continue + } + + char := rune(lines[i][j]) + debugLine += string(char) + + if char == '.' { + continue + } + + _, err := strconv.Atoi(string(char)) + isNumeric := err == nil + if isNumeric { + continue + } + + debugLine = "" //nolint:ineffassign // Only used for debugging and needs to be reset + + return true + } + } + + return false +} diff --git a/2023/Go/internal/day_03/part_01/part_01_test.go b/2023/Go/internal/day_03/part_01/part_01_test.go new file mode 100644 index 0000000..a077fbd --- /dev/null +++ b/2023/Go/internal/day_03/part_01/part_01_test.go @@ -0,0 +1,78 @@ +package part_01 + +import ( + "os" + "strings" + "testing" +) + +func TestWalkLines(t *testing.T) { + lines := getSampleLines() + expected := 4361 + + validNumbers := walkLines(lines) + + actual := 0 + for _, number := range validNumbers { + actual += number + } + + if actual != expected { + t.Errorf("Expected answer to be %d, got %d", expected, actual) + } +} + +func TestCheckValidity(t *testing.T) { + lines := getSampleLines() + + tests := []struct { + x int + y int + length int + expected bool + }{ + {3, 0, 3, true}, // 467 + {8, 0, 3, false}, // 114 + {9, 0, 1, false}, // 3 - Added to check for '\r' counting as a symbol + {4, 2, 2, true}, // 35 + {9, 2, 3, true}, // 633 + {9, 3, 1, false}, // 3 - Added to check if number continues to next line + {3, 4, 3, true}, // 617 + {9, 5, 2, false}, // 58 + {5, 6, 3, true}, // 592 + {9, 7, 3, true}, // 775 + {4, 9, 3, true}, // 664 + {8, 9, 3, true}, // 598 + } + + for _, test := range tests { + actual := checkValidity(lines, test.x, test.y, test.length) + + if actual != test.expected { + t.Errorf("Expected %d, %d, %d to be %t, got %t", test.x, test.y, test.length, test.expected, actual) + } + } +} + +func getSampleLines() []string { + contents, err := os.ReadFile("../../../../_input/day_03_part_01_sample.txt") + if err != nil { + panic(err) + } + + lines := strings.Split(string(contents), "\n") + + var filteredLines []string + for _, line := range lines { + if line == "" || line == "\n" { + continue + } + + // Counts as a symbol... + filteredLine := strings.ReplaceAll(line, "\r", "") + + filteredLines = append(filteredLines, filteredLine) + } + + return filteredLines +} diff --git a/2023/Go/internal/day_04/part_01/part_01.go b/2023/Go/internal/day_04/part_01/part_01.go new file mode 100644 index 0000000..1a215b1 --- /dev/null +++ b/2023/Go/internal/day_04/part_01/part_01.go @@ -0,0 +1,130 @@ +package part_01 + +import ( + "os" + "slices" + "strconv" + "strings" +) + +const USE_SAMPLE = false + +type UnparsedCard struct { + id string + winningNumbers []string + haveNumbers []string +} + +type Card struct { + id int + winningNumbers []int + haveNumbers []int +} + +func (c UnparsedCard) parse() Card { + var card Card + + id, err := strconv.Atoi(c.id) + if err != nil { + panic(err) + } + card.id = id + + for _, number := range c.winningNumbers { + num, err := strconv.Atoi(number) + if err != nil { + panic(err) + } + card.winningNumbers = append(card.winningNumbers, num) + } + + for _, number := range c.haveNumbers { + num, err := strconv.Atoi(number) + if err != nil { + panic(err) + } + card.haveNumbers = append(card.haveNumbers, num) + } + + return card +} + +func Solve() { + var contents []byte + if USE_SAMPLE { + contents, _ = os.ReadFile("../_input/day_04_part_01_sample.txt") + } else { + contents, _ = os.ReadFile("../_input/day_04.txt") + } + + lines := strings.Split(string(contents), "\n") + + answer := 0 + for _, line := range lines { + if line == "" || line == "\n" { + continue + } + + card := parseCardLine(line) + score := tallyScore(card) + + answer += score + } + + println(answer) +} + +// "Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53" +func parseCardLine(line string) Card { + var unparsedCard UnparsedCard + + filteredLine := strings.ReplaceAll(line, "\r", "") + + // "Card 1" + card_parts := strings.Split(filteredLine, ":")[0] + id_parts := strings.Split(card_parts, " ") + id := id_parts[len(id_parts)-1] + unparsedCard.id = strings.ReplaceAll(id, " ", "") + + // "41 48 83 86 17 | 83 86 6 31 17 9 48 53" + numbers := strings.Split(filteredLine, ":")[1] + + // " 41 48 83 86 17" + winningNumberString := strings.Split(numbers, "|")[0] + // ["", "41", "48", "83", "86", "17"] + winningNumbers := strings.Split(winningNumberString, " ") + for _, num := range winningNumbers { + if num == "" || num == " " { + continue + } + unparsedCard.winningNumbers = append(unparsedCard.winningNumbers, num) + } + + // " 83 86 6 31 17 9 48 53" + haveNumberString := strings.Split(numbers, "|")[1] + // ["", "83", "86", "", "6", "31", "17", "", "9", "48", "53"] + haveNumbers := strings.Split(haveNumberString, " ") + for _, num := range haveNumbers { + if num == "" || num == " " { + continue + } + unparsedCard.haveNumbers = append(unparsedCard.haveNumbers, num) + } + + return unparsedCard.parse() +} + +func tallyScore(card Card) int { + score := 0 + for _, winningNumber := range card.winningNumbers { + if slices.Contains(card.haveNumbers, winningNumber) { + if score == 0 { + score = 1 + } else { + score *= 2 + } + } + } + + return score +} diff --git a/2023/Go/internal/day_04/part_01/part_01_test.go b/2023/Go/internal/day_04/part_01/part_01_test.go new file mode 100644 index 0000000..f6f1a83 --- /dev/null +++ b/2023/Go/internal/day_04/part_01/part_01_test.go @@ -0,0 +1,48 @@ +package part_01 + +import ( + "testing" +) + +func TestParseCardLine(t *testing.T) { + input := "Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53" + expected := Card{1, []int{41, 48, 83, 86, 17}, []int{83, 86, 6, 31, 17, 9, 48, 53}} + + actual := parseCardLine(input) + + if actual.id != expected.id { + t.Errorf("ERROR: ID %d does not match expected %d", actual.id, expected.id) + } + + if len(actual.winningNumbers) != len(expected.winningNumbers) { + t.Errorf("ERROR: len(WinningNumbers) %d does not match expected %d", len(actual.winningNumbers), len(expected.winningNumbers)) + } + + if len(actual.haveNumbers) != len(expected.haveNumbers) { + t.Errorf("ERROR: len(HaveNumbers) %d does not match expected %d", len(actual.haveNumbers), len(expected.haveNumbers)) + } + + for i, num := range actual.winningNumbers { + if num != expected.winningNumbers[i] { + t.Errorf("ERROR: WinningNumber %d does not match expected %d", num, expected.winningNumbers[i]) + } + } + + for i, num := range actual.haveNumbers { + if num != expected.haveNumbers[i] { + t.Errorf("ERROR: HaveNumber %d does not match expected %d", num, expected.haveNumbers[i]) + } + } + +} + +func TestTallyScore(t *testing.T) { + card := Card{1, []int{41, 48, 83, 86, 17}, []int{83, 86, 6, 31, 17, 9, 48, 53}} + expected := 8 + + actual := tallyScore(card) + + if actual != expected { + t.Errorf("ERROR: Score %d does not match expected %d", actual, expected) + } +} diff --git a/2023/Go/internal/day_04/part_02/part_02.go b/2023/Go/internal/day_04/part_02/part_02.go new file mode 100644 index 0000000..a9e3152 --- /dev/null +++ b/2023/Go/internal/day_04/part_02/part_02.go @@ -0,0 +1,142 @@ +package part_02 + +import ( + "os" + "slices" + "strconv" + "strings" +) + +const USE_SAMPLE = false + +type UnparsedCard struct { + id string + winningNumbers []string + haveNumbers []string +} + +type Card struct { + id int + winningNumbers []int + haveNumbers []int +} + +func (c UnparsedCard) parse() Card { + var card Card + + id, err := strconv.Atoi(c.id) + if err != nil { + panic(err) + } + card.id = id + + for _, number := range c.winningNumbers { + num, err := strconv.Atoi(number) + if err != nil { + panic(err) + } + card.winningNumbers = append(card.winningNumbers, num) + } + + for _, number := range c.haveNumbers { + num, err := strconv.Atoi(number) + if err != nil { + panic(err) + } + card.haveNumbers = append(card.haveNumbers, num) + } + + return card +} + +func Solve() { + var contents []byte + if USE_SAMPLE { + contents, _ = os.ReadFile("../_input/day_04_part_02_sample.txt") + } else { + contents, _ = os.ReadFile("../_input/day_04.txt") + } + + lines := strings.Split(string(contents), "\n") + + dict := map[int]Card{} + var cards []Card + for _, line := range lines { + if line == "" || line == "\n" { + continue + } + + card := parseCardLine(line) + + dict[card.id] = card + cards = append(cards, card) + } + + answer := processCards(dict, cards) + + println(answer) +} + +// "Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53" +func parseCardLine(line string) Card { + var unparsedCard UnparsedCard + + filteredLine := strings.ReplaceAll(line, "\r", "") + + // "Card 1" + card_parts := strings.Split(filteredLine, ":")[0] + id_parts := strings.Split(card_parts, " ") + id := id_parts[len(id_parts)-1] + unparsedCard.id = strings.ReplaceAll(id, " ", "") + + // "41 48 83 86 17 | 83 86 6 31 17 9 48 53" + numbers := strings.Split(filteredLine, ":")[1] + + // " 41 48 83 86 17" + winningNumberString := strings.Split(numbers, "|")[0] + // ["", "41", "48", "83", "86", "17"] + winningNumbers := strings.Split(winningNumberString, " ") + for _, num := range winningNumbers { + if num == "" || num == " " { + continue + } + unparsedCard.winningNumbers = append(unparsedCard.winningNumbers, num) + } + + // " 83 86 6 31 17 9 48 53" + haveNumberString := strings.Split(numbers, "|")[1] + // ["", "83", "86", "", "6", "31", "17", "", "9", "48", "53"] + haveNumbers := strings.Split(haveNumberString, " ") + for _, num := range haveNumbers { + if num == "" || num == " " { + continue + } + unparsedCard.haveNumbers = append(unparsedCard.haveNumbers, num) + } + + return unparsedCard.parse() +} + +func processCards(dict map[int]Card, cards []Card) int { + for i := 0; i < len(cards); i++ { + card := cards[i] + matchCount := calculateNumberOfMatches(card) + for j := card.id + 1; j < (card.id + 1 + matchCount); j++ { + copyCard := dict[j] + cards = append(cards, copyCard) + } + } + + return len(cards) +} + +func calculateNumberOfMatches(card Card) int { + matchCount := 0 + for _, winningNumber := range card.winningNumbers { + if slices.Contains(card.haveNumbers, winningNumber) { + matchCount++ + } + } + + return matchCount +} diff --git a/2023/Go/internal/day_04/part_02/part_02_test.go b/2023/Go/internal/day_04/part_02/part_02_test.go new file mode 100644 index 0000000..3c66a2e --- /dev/null +++ b/2023/Go/internal/day_04/part_02/part_02_test.go @@ -0,0 +1,143 @@ +package part_02 + +import ( + "testing" +) + +func TestParseCardLine(t *testing.T) { + input := "Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53" + expected := Card{1, []int{41, 48, 83, 86, 17}, []int{83, 86, 6, 31, 17, 9, 48, 53}} + + actual := parseCardLine(input) + + if actual.id != expected.id { + t.Errorf("ERROR: ID %d does not match expected %d", actual.id, expected.id) + } + + if len(actual.winningNumbers) != len(expected.winningNumbers) { + t.Errorf("ERROR: len(WinningNumbers) %d does not match expected %d", len(actual.winningNumbers), len(expected.winningNumbers)) + } + + if len(actual.haveNumbers) != len(expected.haveNumbers) { + t.Errorf("ERROR: len(HaveNumbers) %d does not match expected %d", len(actual.haveNumbers), len(expected.haveNumbers)) + } + + for i, num := range actual.winningNumbers { + if num != expected.winningNumbers[i] { + t.Errorf("ERROR: WinningNumber %d does not match expected %d", num, expected.winningNumbers[i]) + } + } + + for i, num := range actual.haveNumbers { + if num != expected.haveNumbers[i] { + t.Errorf("ERROR: HaveNumber %d does not match expected %d", num, expected.haveNumbers[i]) + } + } + +} + +func TestProcessCards(t *testing.T) { + cards := []Card{ + // Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 + { + 1, + []int{41, 48, 83, 86, 17}, + []int{83, 86, 6, 31, 17, 9, 48, 53}, + }, + // Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 + { + 2, + []int{13, 32, 20, 16, 61}, + []int{61, 30, 68, 82, 17, 32, 24, 19}, + }, + // Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 + { + 3, + []int{1, 21, 53, 59, 44}, + []int{69, 82, 63, 72, 16, 21, 14, 1}, + }, + // Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 + { + 4, + []int{41, 92, 73, 84, 69}, + []int{59, 84, 76, 51, 58, 5, 54, 83}, + }, + // Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 + { + 5, + []int{87, 83, 26, 28, 32}, + []int{88, 30, 70, 12, 93, 22, 82, 36}, + }, + // Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 + { + 6, + []int{31, 18, 13, 56, 72}, + []int{74, 77, 10, 23, 35, 67, 36, 11}, + }, + } + dict := map[int]Card{} + for _, card := range cards { + dict[card.id] = card + } + expected := 30 + + actual := processCards(dict, cards) + + if actual != expected { + t.Errorf("ERROR: Total number of cards %d does not match expected %d", actual, expected) + } +} + +func TestCalculateNumberOfMatches(t *testing.T) { + cards := []Card{ + // Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 + { + 1, + []int{41, 48, 83, 86, 17}, + []int{83, 86, 6, 31, 17, 9, 48, 53}, + }, + // Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 + { + 2, + []int{13, 32, 20, 16, 61}, + []int{61, 30, 68, 82, 17, 32, 24, 19}, + }, + // Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 + { + 3, + []int{1, 21, 53, 59, 44}, + []int{69, 82, 63, 72, 16, 21, 14, 1}, + }, + // Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 + { + 4, + []int{41, 92, 73, 84, 69}, + []int{59, 84, 76, 51, 58, 5, 54, 83}, + }, + // Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 + { + 5, + []int{87, 83, 26, 28, 32}, + []int{88, 30, 70, 12, 93, 22, 82, 36}, + }, + // Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 + { + 6, + []int{31, 18, 13, 56, 72}, + []int{74, 77, 10, 23, 35, 67, 36, 11}, + }, + } + expected := 9 + + total := 0 + for _, card := range cards { + matches := calculateNumberOfMatches(card) + total += matches + + cards = append(cards, card) + } + + if total != expected { + t.Errorf("ERROR: Score %d does not match expected %d", total, expected) + } +} diff --git a/2023/Go/internal/day_06/part_01/part_01.go b/2023/Go/internal/day_06/part_01/part_01.go new file mode 100644 index 0000000..5735924 --- /dev/null +++ b/2023/Go/internal/day_06/part_01/part_01.go @@ -0,0 +1,85 @@ +package part_01 + +import ( + "os" + "strconv" + "strings" +) + +const USE_SAMPLE = false + +/** + * Tried: + * - 72128 (too low) + * - 3317888 (correct!) + */ +func Solve() { + var filePath string + if USE_SAMPLE { + filePath = "../_input/day_06_part_01_sample.txt" + } else { + filePath = "../_input/day_06.txt" + } + contents, _ := os.ReadFile(filePath) + + lines := strings.Split(string(contents), "\r\n") + + timeLine := lines[0] + times := parseTimeLine(timeLine) + + distLine := lines[1] + distances := parseDistanceLine(distLine) + + answer := calculateAnswer(times, distances) + + println(answer) +} + +func parseTimeLine(timeLine string) []int { + prefix := "Time:" + return parseLine(prefix, timeLine) +} + +func parseDistanceLine(distLine string) []int { + prefix := "Distance:" + return parseLine(prefix, distLine) +} + +func parseLine(prefix string, line string) []int { + withoutTitle := strings.TrimPrefix(line, prefix) + + numbers := []int{} + for _, number := range strings.Split(withoutTitle, " ") { + if number == "" { + continue + } + numberInt, _ := strconv.Atoi(number) + numbers = append(numbers, numberInt) + } + return numbers +} + +func calculateAnswer(times []int, distances []int) int { + answer := 1 + for i, maxTime := range times { + recordDistance := distances[i] + + var greaterThanRecord []int + for buttonPressedFor := 0; buttonPressedFor <= maxTime; buttonPressedFor++ { + distance := calculateDistance(buttonPressedFor, maxTime) + if distance > recordDistance { + greaterThanRecord = append(greaterThanRecord, distance) + } + } + + if len(greaterThanRecord) > 0 { + answer *= len(greaterThanRecord) + } + } + + return answer +} + +func calculateDistance(buttonPressedFor int, maxTime int) int { + return buttonPressedFor * (maxTime - buttonPressedFor) +} diff --git a/2023/Go/internal/day_06/part_01/part_01_test.go b/2023/Go/internal/day_06/part_01/part_01_test.go new file mode 100644 index 0000000..7af828c --- /dev/null +++ b/2023/Go/internal/day_06/part_01/part_01_test.go @@ -0,0 +1,96 @@ +package part_01 + +import "testing" + +func TestParseTimeLine(t *testing.T) { + tests := map[string]struct { + input string + expected []int + }{ + "empty": {"", []int{}}, + "sample": {"Time: 7 15 30", []int{7, 15, 30}}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := parseTimeLine(test.input) + if len(actual) != len(test.expected) { + t.Errorf("Expected %d, got %d", len(test.expected), len(actual)) + } + for i := 0; i < len(actual); i++ { + if actual[i] != test.expected[i] { + t.Errorf("Expected %d, got %d", test.expected[i], actual[i]) + } + } + }) + } +} + +func TestParseDistLine(t *testing.T) { + tests := map[string]struct { + input string + expected []int + }{ + "empty": {"", []int{}}, + "sample": {"Distance: 9 40 200", []int{9, 40, 200}}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := parseDistanceLine(test.input) + if len(actual) != len(test.expected) { + t.Errorf("Expected %d, got %d", len(test.expected), len(actual)) + } + for i := 0; i < len(actual); i++ { + if actual[i] != test.expected[i] { + t.Errorf("Expected %d, got %d", test.expected[i], actual[i]) + } + } + }) + } +} + +func TestCalculateAnswer(t *testing.T) { + tests := map[string]struct { + times []int + distances []int + expected int + }{ + "sample": {[]int{7, 15, 30}, []int{9, 40, 200}, 288}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := calculateAnswer(test.times, test.distances) + if actual != test.expected { + t.Errorf("Expected %d, got %d", test.expected, actual) + } + }) + } +} + +func TestCalculateDistance(t *testing.T) { + tests := map[string]struct { + maxTime int + buttonPressedFor int + expected int + }{ + "7_7": {7, 7, 0}, + "7_6": {7, 6, 6}, + "7_5": {7, 5, 10}, + "7_4": {7, 4, 12}, + "7_3": {7, 3, 12}, + "7_2": {7, 2, 10}, + "7_1": {7, 1, 6}, + "7_0": {7, 0, 0}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := calculateDistance(test.buttonPressedFor, test.maxTime) + if actual != test.expected { + t.Errorf("Expected %d, got %d", test.expected, actual) + } + }) + } +} diff --git a/2023/Go/internal/day_06/part_02/part_02.go b/2023/Go/internal/day_06/part_02/part_02.go new file mode 100644 index 0000000..316b169 --- /dev/null +++ b/2023/Go/internal/day_06/part_02/part_02.go @@ -0,0 +1,81 @@ +package part_02 + +import ( + "os" + "strconv" + "strings" +) + +const USE_SAMPLE = false + +/** + * Tried: + * - 24655068 (correct!) + */ +func Solve() { + var filePath string + if USE_SAMPLE { + filePath = "../_input/day_06_part_02_sample.txt" + } else { + filePath = "../_input/day_06.txt" + } + contents, _ := os.ReadFile(filePath) + + lines := strings.Split(string(contents), "\r\n") + + timeLine := lines[0] + time := parseTimeLine(timeLine) + + distLine := lines[1] + distance := parseDistanceLine(distLine) + + answer := calculateAnswer(time, distance) + + println(answer) +} + +func parseTimeLine(timeLine string) int { + prefix := "Time:" + return parseLine(prefix, timeLine) +} + +func parseDistanceLine(distLine string) int { + prefix := "Distance:" + return parseLine(prefix, distLine) +} + +func parseLine(prefix string, line string) int { + withoutTitle := strings.TrimPrefix(line, prefix) + + numbers := []string{} + for _, number := range strings.Split(withoutTitle, " ") { + if number == "" { + continue + } + numbers = append(numbers, number) + } + + number := strings.Join(numbers, "") + numberInt, err := strconv.Atoi(number) + if err != nil { + panic(err) + } + + return numberInt +} + +func calculateAnswer(maxTime int, recordDistance int) int { + var greaterThanRecord []int + for buttonPressedFor := 0; buttonPressedFor <= maxTime; buttonPressedFor++ { + distance := calculateDistance(buttonPressedFor, maxTime) + if distance > recordDistance { + greaterThanRecord = append(greaterThanRecord, distance) + } + } + + return len(greaterThanRecord) +} + +func calculateDistance(buttonPressedFor int, maxTime int) int { + return buttonPressedFor * (maxTime - buttonPressedFor) +} diff --git a/2023/Go/internal/day_06/part_02/part_02_test.go b/2023/Go/internal/day_06/part_02/part_02_test.go new file mode 100644 index 0000000..67924dc --- /dev/null +++ b/2023/Go/internal/day_06/part_02/part_02_test.go @@ -0,0 +1,84 @@ +package part_02 + +import "testing" + +func TestParseTimeLine(t *testing.T) { + tests := map[string]struct { + input string + expected int + }{ + "sample": {"Time: 7 15 30", 71530}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := parseTimeLine(test.input) + if actual != test.expected { + t.Errorf("Expected %d, got %d", test.expected, actual) + } + }) + } +} + +func TestParseDistLine(t *testing.T) { + tests := map[string]struct { + input string + expected int + }{ + "sample": {"Distance: 9 40 200", 940200}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := parseDistanceLine(test.input) + if actual != test.expected { + t.Errorf("Expected %d, got %d", test.expected, actual) + } + }) + } +} + +func TestCalculateAnswer(t *testing.T) { + tests := map[string]struct { + maxTime int + recordDistance int + expected int + }{ + "sample": {71530, 940200, 71503}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := calculateAnswer(test.maxTime, test.recordDistance) + if actual != test.expected { + t.Errorf("Expected %d, got %d", test.expected, actual) + } + }) + } +} + +func TestCalculateDistance(t *testing.T) { + tests := map[string]struct { + maxTime int + buttonPressedFor int + expected int + }{ + "7_7": {7, 7, 0}, + "7_6": {7, 6, 6}, + "7_5": {7, 5, 10}, + "7_4": {7, 4, 12}, + "7_3": {7, 3, 12}, + "7_2": {7, 2, 10}, + "7_1": {7, 1, 6}, + "7_0": {7, 0, 0}, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := calculateDistance(test.buttonPressedFor, test.maxTime) + if actual != test.expected { + t.Errorf("Expected %d, got %d", test.expected, actual) + } + }) + } +} diff --git a/2023/Go/internal/day_07/part_01/part_01.go b/2023/Go/internal/day_07/part_01/part_01.go new file mode 100644 index 0000000..a485dfd --- /dev/null +++ b/2023/Go/internal/day_07/part_01/part_01.go @@ -0,0 +1,273 @@ +package part_01 + +import ( + "os" + "strconv" + "strings" +) + +const USE_SAMPLE = false + +type handType int + +const ( + HIGH_CARD handType = iota + PAIR + TWO_PAIR + THREE_OF_A_KIND + FULL_HOUSE + FOUR_OF_A_KIND + FIVE_OF_A_KIND +) + +func (h handType) String() string { + return [...]string{"HIGH_CARD", "PAIR", "TWO_PAIR", "THREE_OF_A_KIND", "FULL_HOUSE", "FOUR_OF_A_KIND", "FIVE_OF_A_KIND"}[h] +} + +type cardType int + +const ( + TWO cardType = iota + THREE + FOUR + FIVE + SIX + SEVEN + EIGHT + NINE + TEN + JACK + QUEEN + KING + ACE +) + +func (c cardType) String() string { + return [...]string{"TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "JACK", "QUEEN", "KING", "ACE"}[c] +} + +type hand struct { + strength handType + cards []cardType + bet int +} + +/** + * Tried: + * - 252489894 (too high) + * - 229176554 (too low) + * - 200253108 (too low) + */ +func Solve() { + var filePath string + if USE_SAMPLE { + filePath = "../_input/day_07_part_01_sample.txt" + } else { + filePath = "../_input/day_07.txt" + } + contents, err := os.ReadFile(filePath) + if err != nil { + panic(err) + } + + lines := strings.Split(string(contents), "\r\n") + var hands []hand + for _, line := range lines { + if line == "" { + continue + } + + hands = append(hands, parseLine(line)) + } + + mappedByStrength := mapByStrength(hands) + + sortedByHighest := make(map[handType][]hand) + for _, strength := range []handType{HIGH_CARD, PAIR, TWO_PAIR, THREE_OF_A_KIND, FULL_HOUSE, FOUR_OF_A_KIND, FIVE_OF_A_KIND} { + if _, ok := mappedByStrength[strength]; !ok { + continue + } + + toBeSorted := mappedByStrength[strength] + sortedByHighest[strength] = sortByHighest(toBeSorted) + } + + flattened := flatten(sortedByHighest) + + answer := calculateWinnings(flattened) + + println("Answer: ", answer) +} + +func parseLine(line string) hand { + parts := strings.Split(line, " ") + + unparsedCards := strings.Split(parts[0], "") + cards := parseCards(unparsedCards) + strength := calculateStrength(cards) + + bet, err := strconv.Atoi(parts[1]) + if err != nil { + panic(err) + } + + return hand{ + strength, + cards, + bet, + } +} + +func parseCards(unparsedCards []string) []cardType { + var cards []cardType + for _, card := range unparsedCards { + switch card { + case "2": + cards = append(cards, TWO) + case "3": + cards = append(cards, THREE) + case "4": + cards = append(cards, FOUR) + case "5": + cards = append(cards, FIVE) + case "6": + cards = append(cards, SIX) + case "7": + cards = append(cards, SEVEN) + case "8": + cards = append(cards, EIGHT) + case "9": + cards = append(cards, NINE) + case "T": + cards = append(cards, TEN) + case "J": + cards = append(cards, JACK) + case "Q": + cards = append(cards, QUEEN) + case "K": + cards = append(cards, KING) + case "A": + cards = append(cards, ACE) + } + } + return cards +} + +func calculateStrength(cards []cardType) handType { + strength := map[cardType]int{} + for _, card := range cards { + if _, ok := strength[card]; !ok { + strength[card] = 0 + } + strength[card]++ + } + + var pairs int + var hasThreeOfAKind bool + for _, count := range strength { + if count == 5 { + return FIVE_OF_A_KIND + } + + if count == 4 { + return FOUR_OF_A_KIND + } + + if count == 3 { + hasThreeOfAKind = true + } + + if count == 2 { + pairs++ + } + } + + if hasThreeOfAKind && pairs == 1 { + return FULL_HOUSE + } + + if hasThreeOfAKind { + return THREE_OF_A_KIND + } + + if pairs == 2 { + return TWO_PAIR + } + + if pairs == 1 { + return PAIR + } + + return HIGH_CARD +} + +func mapByStrength(hands []hand) map[handType][]hand { + + handsByStrength := make(map[handType][]hand) + for _, hand := range hands { + handsByStrength[hand.strength] = append(handsByStrength[hand.strength], hand) + } + + return handsByStrength +} + +// low to high +func sortByHighest(hands []hand) []hand { + var partition = func(arr []hand, low, high int) ([]hand, int) { + pivot := arr[high] + index := low + + for i := low; i < high; i++ { + // Always 5 cards + for j := 0; j < 5; j++ { + if arr[i].cards[j] < pivot.cards[j] { + arr[i], arr[index] = arr[index], arr[i] + index++ + break + } + + if arr[i].cards[j] != pivot.cards[j] { + break + } + } + } + + arr[high], arr[index] = arr[index], arr[high] + + return arr, index + } + + var quickSort func(arr []hand, low, high int) []hand + quickSort = func(arr []hand, low, high int) []hand { + if low < high { + arr, pivot := partition(arr, low, high) + + quickSort(arr, low, pivot-1) + quickSort(arr, pivot+1, high) + } + + return arr + } + + hands = quickSort(hands, 0, len(hands)-1) + + return hands +} + +func flatten(hands map[handType][]hand) []hand { + var flat []hand + for _, handType := range []handType{HIGH_CARD, PAIR, TWO_PAIR, THREE_OF_A_KIND, FULL_HOUSE, FOUR_OF_A_KIND, FIVE_OF_A_KIND} { + flat = append(flat, hands[handType]...) + } + return flat +} + +func calculateWinnings(hands []hand) int { + var winnings int + for i, hand := range hands { + earned := hand.bet * (i + 1) + winnings += earned + println("hand ", i, ": { strength: ", hand.strength.String(), ", cards: [", hand.cards[0], hand.cards[1], hand.cards[2], hand.cards[3], hand.cards[4], "], earned: ", earned, " }") + } + return winnings +} diff --git a/2023/Go/internal/day_07/part_01/part_01_test.go b/2023/Go/internal/day_07/part_01/part_01_test.go new file mode 100644 index 0000000..6ceabe8 --- /dev/null +++ b/2023/Go/internal/day_07/part_01/part_01_test.go @@ -0,0 +1,432 @@ +package part_01 + +import "testing" + +func TestParseLine(t *testing.T) { + tests := map[string]struct { + input string + expected hand + }{ + "sample_1": { + input: "32T3K 765", + expected: hand{ + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + }, + "sample_2": { + input: "T55J5 684", + expected: hand{ + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + }, + "sample_3": { + input: "KK677 28", + expected: hand{ + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + }, + "sample_4": { + input: "KTJJT 220", + expected: hand{ + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + }, + "sample_5": { + input: "QQQJA 483", + expected: hand{ + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + }, + "full_house": { + input: "QQQAA 999", + expected: hand{ + strength: FULL_HOUSE, + cards: []cardType{QUEEN, QUEEN, QUEEN, ACE, ACE}, + bet: 999, + }, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := parseLine(test.input) + + if actual.strength != test.expected.strength { + t.Errorf("Strength: expected %v, got %v", test.expected.strength, actual.strength) + } + + if len(actual.cards) != len(test.expected.cards) { + t.Errorf("Cards: expected %v, got %v", test.expected.cards, actual.cards) + } + + for i, card := range actual.cards { + if card != test.expected.cards[i] { + t.Errorf("Card Order: expected %v, got %v", test.expected.cards, actual.cards) + } + } + + if actual.bet != test.expected.bet { + t.Errorf("Bet: expected %v, got %v", test.expected.bet, actual.bet) + } + }) + } +} + +func TestMapByStrength(t *testing.T) { + tests := map[string]struct { + input []hand + expected map[handType][]hand + }{ + "sample": { + input: []hand{ + { + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + }, + expected: map[handType][]hand{ + PAIR: { + { + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + }, + TWO_PAIR: { + { + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + }, + THREE_OF_A_KIND: { + { + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + }, + }, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := mapByStrength(test.input) + + for strength, hands := range actual { + expected := test.expected[strength] + + if len(hands) != len(expected) { + t.Errorf("Length: expected %v, got %v", len(expected), len(hands)) + } + + for i, hand := range hands { + if hand.strength != expected[i].strength { + t.Errorf("Strength: expected %v, got %v", expected[i].strength, hand.strength) + } + + if len(hand.cards) != len(expected[i].cards) { + t.Errorf("Cards: expected %v, got %v", expected[i].cards, hand.cards) + } + + for j, card := range hand.cards { + if card != expected[i].cards[j] { + t.Errorf("Card Order: expected %v, got %v", expected[i].cards, hand.cards) + } + } + + if hand.bet != expected[i].bet { + t.Errorf("Bet: expected %v, got %v", expected[i].bet, hand.bet) + } + } + } + }) + } +} + +func TestSortByHighest(t *testing.T) { + tests := map[string]struct { + input []hand + expected []hand + }{ + "sample": { + input: []hand{ + { + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + }, + expected: []hand{ + { + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + }, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := sortByHighest(test.input) + + if len(actual) != len(test.expected) { + t.Errorf("Length: expected %v, got %v", len(test.expected), len(actual)) + } + + for i, hand := range actual { + if hand.strength != test.expected[i].strength { + t.Errorf("Strength: expected %v, got %v", test.expected[i].strength, hand.strength) + } + + if len(hand.cards) != len(test.expected[i].cards) { + t.Errorf("Cards: expected %v, got %v", test.expected[i].cards, hand.cards) + } + + for j, card := range hand.cards { + if card != test.expected[i].cards[j] { + t.Errorf("Card Order: expected %v, got %v", test.expected[i].cards, hand.cards) + } + } + + if hand.bet != test.expected[i].bet { + t.Errorf("Bet: expected %v, got %v", test.expected[i].bet, hand.bet) + } + } + }) + } +} + +func TestFlatten(t *testing.T) { + tests := map[string]struct { + input map[handType][]hand + expected []hand + }{ + "sample": { + // Order jumbled to ensure sorting works + input: map[handType][]hand{ + TWO_PAIR: { + { + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + }, + PAIR: { + { + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + }, + THREE_OF_A_KIND: { + { + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + }, + }, + expected: []hand{ + { + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + }, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := flatten(test.input) + + if len(actual) != len(test.expected) { + t.Errorf("Length: expected %v, got %v", len(test.expected), len(actual)) + } + + for i, hand := range actual { + expected := test.expected[i] + + if hand.strength != expected.strength { + t.Errorf("Strength: expected %v, got %v", expected.strength, hand.strength) + } + + if len(hand.cards) != len(expected.cards) { + t.Errorf("Cards: expected %v, got %v", expected.cards, hand.cards) + } + + for i, card := range hand.cards { + if card != expected.cards[i] { + t.Errorf("Card Order: expected %v, got %v", expected.cards, hand.cards) + } + } + + if hand.bet != expected.bet { + t.Errorf("Bet: expected %v, got %v", expected.bet, hand.bet) + } + } + }) + } +} + +func TestCalculateWinnings(t *testing.T) { + tests := map[string]struct { + input []hand + expected int + }{ + "sample": { + input: []hand{ + { + strength: PAIR, + cards: []cardType{THREE, TWO, TEN, THREE, KING}, + bet: 765, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, TEN, JACK, JACK, TEN}, + bet: 220, + }, + { + strength: TWO_PAIR, + cards: []cardType{KING, KING, SIX, SEVEN, SEVEN}, + bet: 28, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{TEN, FIVE, FIVE, JACK, FIVE}, + bet: 684, + }, + { + strength: THREE_OF_A_KIND, + cards: []cardType{QUEEN, QUEEN, QUEEN, JACK, ACE}, + bet: 483, + }, + }, + expected: 6440, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + actual := calculateWinnings(test.input) + + if actual != test.expected { + t.Errorf("Winnings: expected %v, got %v", test.expected, actual) + } + }) + } +} diff --git a/2023/Go/main.go b/2023/Go/main.go new file mode 100644 index 0000000..3357d3e --- /dev/null +++ b/2023/Go/main.go @@ -0,0 +1,85 @@ +package main + +import ( + "flag" + "os" + + "github.com/DJOLEARY/Advent_of_Code/internal/day_01" + day_02_part_01 "github.com/DJOLEARY/Advent_of_Code/internal/day_02/part_01" + day_02_part_02 "github.com/DJOLEARY/Advent_of_Code/internal/day_02/part_02" + day_03_part_01 "github.com/DJOLEARY/Advent_of_Code/internal/day_03/part_01" + day_04_part_01 "github.com/DJOLEARY/Advent_of_Code/internal/day_04/part_01" + day_04_part_02 "github.com/DJOLEARY/Advent_of_Code/internal/day_04/part_02" + day_06_part_01 "github.com/DJOLEARY/Advent_of_Code/internal/day_06/part_01" + day_06_part_02 "github.com/DJOLEARY/Advent_of_Code/internal/day_06/part_02" + day_07_part_01 "github.com/DJOLEARY/Advent_of_Code/internal/day_07/part_01" +) + +func main() { + day := flag.Int("day", 1, "Day to run") + part := flag.Int("part", 2, "Part to run, must be 1 or 2") + + flag.Parse() + + if *part < 1 || *part > 2 { + println("Invalid part number, must be 1 or 2") + os.Exit(1) + } + + switch *day { + case 1: + switch *part { + case 1: + println("Day 1 part 1 not implemented") + os.Exit(1) + case 2: + day_01.Solve() + } + + case 2: + switch *part { + case 1: + day_02_part_01.Solve() + case 2: + day_02_part_02.Solve() + } + + case 3: + switch *part { + case 1: + day_03_part_01.Solve() + case 2: + println("Day 3 part 2 not implemented") + os.Exit(1) + } + + case 4: + switch *part { + case 1: + day_04_part_01.Solve() + case 2: + day_04_part_02.Solve() + } + + case 6: + switch *part { + case 1: + day_06_part_01.Solve() + case 2: + day_06_part_02.Solve() + } + + case 7: + switch *part { + case 1: + day_07_part_01.Solve() + case 2: + println("Day 7 part 2 not implemented") + os.Exit(1) + } + + default: + println("Day not implemented") + os.Exit(1) + } +} diff --git a/2023/_input/day_01.txt b/2023/_input/day_01.txt new file mode 100644 index 0000000..e394817 --- /dev/null +++ b/2023/_input/day_01.txt @@ -0,0 +1,1000 @@ +nine92jnhgqzctpgbcbpz +sevensddvc73three +9986fmfqhdmq8 +7onexmxbzllfqb +six777 +1zbngsixxrfrpr +threeeight9seven +nhds975three6 +ninepgp9 +22fourninetzfourfsnxjglthreeeight +mhcvqmsg7bdj +seven67 +fourone5 +twofour7 +5sixonesix3pzhd +3htvgrzpznhjts52one +52cmzhfrxdfmtgvtfqx7three4szcfchxj +sixtwonine7 +three7938 +67four4 +7zr9 +4qseventwoqqf9bbqg4 +sevenone1srmghlzg +ctwonenxmhspdmnineone7 +8mgzsgmphgceight +ktznbbmkbhln4six +cbtpgzc4 +rxzgrqeightseven18five4txv +jgb95ninetwonine +45mxfg9twodsnnjsfnk1five +29lhfhfkdqfntwo +tssixsixdxjzjjhq35hone +cjfjpcrpcn7rlrlrxslmhpt56189 +5llmdmqgt149sevenoneq6 +l9649twothree +8two34fjxt42 +seven3threelxd66 +46248mmfblpgql9fournine +3cmvxcskh4 +491mzklmbt7bgcrbmspprjgsgv +95eight5five +14qqndrttdrlgqrhmtbninezgjsftb +nine37eight1fcqns +4onethreekzpkpkpmxlpnsvqtlmtrsgznxkckrpsqskbz6 +9vvcsgxq +nlvfrjghsnbnine19 +pdxlsxthvmone25eight +613twoseven9 +123fdx +dnqgrzzmxxdjzknc3 +twodm2 +thprcxhggclfnlsixzhl863ninevzzvfvhz +1fourkbfhhzclz1 +5qvtpll6eight1 +sevenfourninedmrccgnbd8ncbjjm +3threezv6nine +kq279fiveoneone8four +nlqlzbbnrn2 +8jqhncbfsxvrrqxfkv +r5onefive +znlzncgngjlpxhmmmxprseventhree7 +jkpbfpvssixxpfjcs528 +four4fsts53fdgckkz +kjrkflhmlk11psixdhpxbstklx +4788vhrlqltv +1zntp2 +9htgdlbktwo7pthree +37dqpbmqxssvznrzp2nvzcvlnsdoneightq +zkcjnc6zgsrcmvthcjsfgvbtxh +8seven8nine +vnx3 +7dkxxq6298 +one42 +qpjtvfhsnmonethreeqpc5 +2eightlsbsrkkcp9dmmg +818twoseven81dtjrkgvfive +4nine32kjgpljzskthree9 +ninedkxkktxmr1ptrlpkbqqhcjvfszseven +2573 +bskfrcfvc5 +3onevjgpjbqfgone7 +xp55eightsixfive42two +eight64 +13two8zgdmtgngdlsqzlfzskst +zmjdhkfdnine18rkp93 +2onefivesevenrkvqqp3 +47xvdflvxvgvqnqdxj +lvrnrbmthree6 +74j +xkrpgrvrn6745ninefive +839vhbgvnbcmccbvhsm +6128bbzq5vdbqllshr +37two +one3lttgqqdmtpmbzbxqlrshvdpcdgcjhtwotwo9 +fourpjhbseven89kmpzmdqceight +twoninegzgseven5nine +pfflhh6gvlrkrdscthree +8fivesix8jntbb +bzxt439 +8tpcq57 +6onethree +nineqm9eightsevenfxqqcnk4 +9hcxcjfmbb12one6cfvnbc +37threesevenzljkqzshqkcp +trnrncrssxrqmlhbglrspbzvdtlonegtv4one4nineeightwodxs +21fivedqnjnrjtlk2fkkzf9sklbpx3 +hqptwone85eight7lgq +4seven7 +6seven5three6rmcphxdnh283 +8sevenmxkhgsq9bfeightfivemfour +7two1six9smnvbjhfivesevenseven +5hrxbglgkn46grstkdbmzrxp95tt +cfdqbjtwoll3fxvseven6kzfzrblxp +qnhqbczqp7fxc2two +sixsix4sjjdjlxnjgcmqsrzvzljvqhlrrtvtrcqxdzdqt +seven36fourstbzj +zj4fiveninefourtwo2 +5rqpmvlp +3fivextckgmvrsv +threenlqhqshmk31eightsone4hbxfnvf +975five7dzjcnsrvv6fourpjhghvhlxx +nine82plfjneightsevenonefive +five21 +bntwofourrxt2tdrscfzdg +87fivetwo +2threebnpvtrqqnz5prmsppgzdfhnq +6qgpnnine +2vkvg +5zzqxp +sixxlkrhpfptqnhtkq1sevenqbnnnjfsixnine +4eighttwo6lsxpczhcmxs +kvnzcjsbsix1hnineseven +gztwoneseven3tnxb2sixeight457 +four76two9eightfour +nine1nine +14lrrxcds +twonqp5gpnbkbeight3 +fourthreebnjghhlhkhconegcssjrjpbkcghxtxssix4 +one57 +zkjkzq6sjztlrqrjr9 +seveneightsqjzqgnj69eight1 +44tvjvzflfc5seven +26threemjdghknrmv +nfvg2rzcrpntndp2xsglskninesix +nqdpzsevenpfxhvzthgn3 +2onejxpzf4zzktsmszgmpcfsstm6 +xx89 +76qseven +jsevenztsdb9hhmcdbftq +16one7nine +seventwoqdkcbhdpmmtworljxhvvbh1 +jzbvvsmd1 +1ninesixpvcdkllhzbnrhqmztzeight +47pmnvsxgvgbthreenine +two88nine4sptjdbpl8 +eightfxpg9eightgmzmtmcdninerbbcpfv +fourpfkzxjtqffour4fourone +nine5fourzldszlp5eightdhpmxfjqp +onetwo1l +zjxcvkgdvm83 +lrbsdhcthreembbcxsix6 +eighthjtndgmqsixeight9xcbkfkcbgcscfnxrdxglb +vfive9fourcmtpfour +sevenonefour5 +rgf7kgdskzdlnmvdccpgphfzzz9six3 +five7ninernknr +cbn5fxdlthree41pzzkfive5 +two7eight2p +ninenine11qct7five5 +zsrqtvkrlc2gmgzshqmrkgd63sevennine +five6six +threeshpvfrcjc3mddjbmfxqrtpdxninemscsixrvvzp +mrrmmvgk63threethreeseven9 +pjsdfkzmjnine8xqsrm +ninefourfive1 +96twonineqkdvnlmppxnnfbxltq2bvsgvckczk8 +dsjbhdnseven1grgfhnv2fourzhbzsrtb +4zfzmsmd6sbkx1threedbx +8qqfdnfive77ckhjpfx +zq5pdkmp1d +one285seven +2hg99slp8 +5b629cmr5 +8mdsmlqdl7 +11 +leightfivemqqcgdkmgf5bnh +six44jsjglrb9bkhjthreecrvnvkzp +4c83five +vkplqrvclg39nbxrdxlf +zk8bmtnlfb6one53five +32sevenonefourshgllvpcx7ndb +eight937 +four5rntqrhknd +75k +five1pqtthree7eightwogbz +lplnltrj3 +eightfbqknfvpnq797z +six347sevenddrtmtbfzc85fqmtg +7twoqjzfm56rxtwo +vcnxgdvnlpcsxnf5onesjjsh +tkxzgtsrseven5eightkzzchsttcclsrj3l +eightgnb6brlhgvjqqtone41 +seven6two2seven +rptsrgfgxbfivekmczndhk7 +1fourdjmngvm6 +92two68cnpqnksixthree +nine9lzjhvqfmlbtvhpldthree6seven +hfggfbbone5hhsdplqlbtrd +419 +oneszzlpcdthree3psbjhtxg +72sixqblfhxttgkt +t3vd96eighttwofive +6onenszxmlqmddsevencmqskr +cnlkqsjthree7sevenrfrsxqm +47eight5seven4 +five273gvq +8bszrghjsgplgq2vdjltggpv5ngbjtsxr5zmqht +hmtc5onelbxllblcbd +seven436cjsxvxkzjpxfzfvj9 +8qcrkfqnfck957qklqkh3fourfour +bhtnrfckfone9six8 +fgz3seven +2ninesevenpdcpcjnine2two9 +vgfvvjhb6jqjnine +rfsndn62 +vldqdctnonenine3threeghxbvmdmlgcjpfrdjnine3 +two677eight +6ksn +762two +ldppf75nine68xnf79 +eighttwoh5three +nine1threeseven +seven2kxqxgksevenhhsksnkhqcrlrltsixcnszhmn +lhbjnineseven16eightrmjgxdzfour +onetwo77jtgtnqnc8one +four7ninejxkqnhqjfdzrjdhggrvfourlh +qq2brmqcccqr +nlsdfour5eightsktbmxlxc7 +8fpjfstnbnineqgkbxtl5dqdnjqnlz2lcljvfbcl +g6r +6five6sixvjctzjkksbrnkpp3 +1four8sixthree32nbbpjnhmzp +2md +twokxhkggninengbfjmdfc76 +fivetwosix446sevenfkgzd +57vflrqxnbcqfour3hcjhsrrrxkpjxgvfive +svbppr8six66 +twokthreevxdfvtmpjddnl8 +sixnine1eight44seven9 +scsmpjjxlzjf876 +74qhtxntdkz19pchjtlxclm3 +seven8ninenjtvkgj45one +bkseightfourone4threeonesnb +8two8xnglszthreeone +lt771782 +one5cfdcnz +zgsqfmxdkbnhsbgzchmfdrpmkvtzone1 +jmcdgvjnmdhskfiveninevbczbs3 +kzeightwokpnjskjhseveneightkpjb72ninecftgvk +7eightwogbb +54kvfvmfcbxbd +3threeninegrlkrnkpd +phbqqhtdtclfzph58sevenmxmd +8twoonehcnszgqfvxxrqrjctc +two9nltzxg9nine +9vlhb4six17zvgkmh +5threetfdvtthreebgthree +49ttszscztpm +8seven6 +three5eighteightlvqll99 +nxkt5zpctfhdjpvtwofbjdsrnnrvjbjtzgmkmrxpjmntc +11sixfivethree3ninelv +9gszhbpgfjrzvrzgjfsixd3 +jzxv89two8bjkmqmngkgtwotnmdqeightwonrc +qxeightwo5hzpdpzzcmmzskjzfmgpftlxkmzgp +hvfmrxrlslhzkv5 +6pjzbfbmone1 +768gseven9sixseven5 +qmkfslbrcnhtc5two5btgrhbnlx +sevenonefourkgtd79rzfh4eight +9fourvmvbxlvlm8threefour +9sdg8 +8bvrkzfxndjffltghv3blgpzjjckjbqqsqeightqj +qc3jnmtsmpzzjbczbfive +sevenfour949qgkqsjtwo8qqpsvzn +dzlnmhd2rflthreedflj4 +sixseven1 +one6sevenhtpfgpfxfb4vjzhseven2 +twofivefxdc4 +3fourrvffbkkcmxggsevensix3 +djkghxsptqvmztwotwofour13 +4b +rvgvhpdtwo17xzbxnfjrmfjqxf +sevenlzsrq6oneightm +qkxt88twohqzntfcsfournine53 +bmcxgsdjtl2 +74htmkdfg583srrlxbhrjv74 +sixseven6tjtsthqsr +sqpkddjfvfn2vpncllssfqlzjkcfivetwofour1oneightltn +6smrndvvbhkzpffzfggvzfznzvmkmglvptfour +45fttcdmvpl +862 +xmtmbzrtnptwofour3vknngpgt5 +8fivetwosevenk +twoseven9mgzxbcgxvm4f5three +1eight1 +dlone5dvrfrcdmjh +9cvks8eightscbdmkcs +qcgxzddpjljmlzgmt5nzxhnsthreeonefivefour +grvm8kktsfczpkr16stfourone +9onexmznhhtrjrrffmtwo +seven4threesix3rghsgxlxv7 +7twothree +1eight66sevenzbpfpx5nineeight +tdhnbdm5lklnqprmhfnsfndlmqz +gzznvrjbkj7lfdjjsqrmkvtfrdxr +sevenhf2 +eightthreembmlrcnseveneight4vgbgpsvnklbc +mxf7ddcninesixsix +rkskdbpjj25djggzzznineqsfftrptseven +zhklmmknrlvqhvjl1 +two37twosccseven +2pmdscmvfdb +2423six +eight3484oneninevqzdone +91sixeight +2five4mcvktqxg +mkqzbxmqpfouronedtrtvtlh561 +ninetwoqcjdhgfrsllsbnh5lcsixdj +3thmpnfivefivehvjmdrgpzcdtwo +sixone3 +qxrpbbq8szvbxzsctwo8b +9zl4nine +nfdnss4nineninesdtxhhbttnjv +7onevxltxxpktcfgb8two +jjgfive4fiveone8seven +ndnmqfour87jgxzhxsshrpkccvbkhfjbvdznpkjhsfgpgtwonebjc +54qdhsixthreeeight4 +five2mrlthreefour5dstcdl9 +2sevenvrxkfkhvrqcgj +six9one3ninetwo9 +47twoeightonesevenfourseven +4lxjndxb +twoninejlhjnmv77sixthreehfmxnrmsbb8 +5phctbfzjttxbmtqxhbhdjzlsbtdqhjcsqhp4onedpmvsqqxhh +2zxfhnlgfg46twompfpdxq5rkprm +chfgl5hvrhn3ninetwo1four +6fiveeighttbcdxzplsthlqrrqpfnljlkh1 +7nnf6seven3gxptj3hpmddeightwofgz +nine3one7zmjfdxq +onedlpzjnxnine6nrdm +8four24sixdtgvs +8sevenmkclfxbgvzjclfvsppcnnrone +four9nbhfqvrgzcxcvmrtnp55sevenmzvllfsz3 +qjfdqhhqfm552dqsgpjxzbdpqbcqlgsd +5kgfvcpm7 +threegvqdkvht1two +h2vmd +4nzxftfld +sevenfive8vjxxgbcktb +qnnine2seveneightsqcsnx6zpxtkzxx +hsbjjhb1 +9one2vfpnhjs9ninekqjp3 +eight8ninethree +34q78ninesixnine +nine8threefoursixfiveninemvrgmnfive +2eighttfzsvsfcthreezlspnkjp94vjtgnlvrr +68pbjk2 +ctxpk65cgvdjvdhh8 +mchjm476rlppfourtwomht5 +dltwofourseven5 +2vmfdspgkt7 +28sixninefive4vmddg5 +2rtcc +cr4 +5nmhbslxxtmsevenxn +sevenbzmbtnzpgj8eight +5qn +4phjbkmsjvskt42four +six1four37twoeightnjgrsr9 +eightone4zcszcktgqqlvfspzbbgzz8 +noneightphfdl78ckfkdmlnlktcrp19 +3qfive9 +416ninesevenm8three9 +36thprseven +ninem1 +sevenbxh6fourtwosix +7threethree +kgsnqrpfourqllxjlhmphxzs5threetwokqlqtwoneqv +dlldzdvl4four7onepmpprcstx59one +threefhdhmgbs6 +ldsxvtqd2dkkn77 +six224eightone +xk7fourj6 +sixjhpf59 +1threesvrfvccqpnqzvhkq1 +44five +one61 +twoqxqlkkrfj7six51sixjfgjbfx +4bdldfqtb6 +xrftwohszhtkhq9 +threennsixfhtgpvdnnx6kxxcpx3twoone +grhbqhtl5threesevenkscph +sevenbrmttfxrlm9kdvmvjgbpz7 +26one4one29two +fone76nine +four62 +6eightftkdjhnqdsdpone8five4two +mpqltxpzqfone1ninekthxjqjf +vhzvxhtlgvvpfjsj16 +pcqq88lkdjjllthreethree +zpbzdmfnceight412cxzfxpd +two78jdxcjxrshsxpxsseven +1877 +4fivesix +seven379threegzbz +eight78jcnzbzzbdrldkf +dtlleightpqdkdmtrm25rngsjrrpnhmsnnlcc +fourthreefourfplmfqkqxztllvninenineseven2 +8threefkdfmltrbq +sevensixmntmdgcbnfsevensixtwothree8 +25twoeightjrp +sevenseven3onekrbjcdmfbsf +sz9224xmsrxgj +jp628 +ncbj7nine6sixfour54six +zlnpvd24vkstwodphpl22pkvdjxmdc +9c5two +fivetwo6531knrdgeightnine +q7onetwo +7lbztvgzdsh6sixseven +sfbbr8ltlpldgft1blxctbzmxfourmbp65 +dkmjpbbbc3nxgdpqfx +sixfour62zlljntpbnine +3fourmcb +8ndvk8vdfqjj1m +c8vthreesix3twoq +eight2rseven +1cmxmkththreeone3eight96qrxttfdzlg +2blxxsh19cklgghmnjph +qgxhcrkmthreezdbfpgfgsrdbheightfour7ninetwo +4sevenninesixf4fivekkkbnjq +sevenbzxghxrrbjpspmdhzqg7five +one1sevenkltpqgjseventhree +6fourtwopfzpng +8msfjncfjnqpds4rqbdxnine +kcpvnzv1cbtnpvone +fivenineeightmthree8 +zqkjeightkzgzbone51 +vxlglkpglqhkjjxlb4 +tzjqjzghthree6 +one1qbhdshmqdkfcn +pdrqnrxdz5jqjsnhmt4five3seven +46rvhnvdbmjrzzffivefivesqkg +oneprjnclrh9 +twoseven78j +rrllqrpdhcznns9seven +pjrqzbd7 +978seven8kmlznczcrbplnjvtwobgbrtq +sjdxrt12qzvnpxqgrfourkfrhlzmsqplxpcqq +1jfmntl1twolvtwonef +hd53eightsixgtqdkbjfrvqv9lxgg +1rtbzrnndthree7fivethljmpzmscgjgpzpkffmrfx +6rlllxpnp1vgrdxvfqzeight298 +99threebrlkkzsffjlltqtwoeight1two +7sevenjrjpkphkfhfour +four5977qzktpnsixncfxzdghj3 +lkptwo856 +7cktjpjbfnplm7pdxrnfknfmfiveglsjr +1eight5eightmjhqfn +zskkbkn37k7one +6fivesevencpmlpngjfvfivesnhst3 +five8cqdzm9 +pfdhzfive9 +5seven6ncmtzrhdthrftmbnkzmfour +89tkhtdlkg8rjjpfj +9pghbhntzntninefour +eight3ninesjc8 +79one1 +45lone2 +fblrgtgdvfour5 +8nine139tsgbqmoneonefgqtbv +9eightvdpstdhtqfdzhmpspf +zgjfpjxdqbzvxj9fiveseven6vfntgjkgr5 +threedscrseven911dvgcftsdklfthree +threetbtlnb3mzlmlgspdmqxt8hsqsckxfkcsix +3dtctvmnh +foursix6 +8eight5jtfj +1lcvtwofive1qxdqmslfbndd +fourthreersevenseven581 +rgpthree747hgzoneightzs +fxqdbvtjngr3rpxrzfdgrm +tsmcsl2one9ninesslscfivenine +1kg5three94 +8pqdqqddhn81hjjdjfsk +groneight1one572seven5three +krgdh94 +3zxgsbgn4 +7vsckhgjvxd3fourgjg +6lhpsnmtz8lxcgqzjxvjxpbbsmn6rddljdthreecd +386fivensrl +one5four487eightfbsblbkthree +bhkvlqhsqjpseven88five19 +92two6cpz6 +7nvkv8719rznhq55 +12cmfkmvknqqsnjsqv +fivehgdqqgrcx2xflqmmjnq +vmpfivexpfjscsrjh6fivetsqngtzllteight +nine1bkbrsjrxkgtm33 +7one2 +31jdx5seven45 +one721 +3three3xmsxzrfl +6bjz7shj45two +zseven6nnftpnxldgtwo1two1 +266hkvrtbflcthreetlbrgdnhkrseven83 +88vmsrsvxvpcvjmfrpssqvcjqdcmxone +773sbl4 +86ninelxr +jjbgmdmrfive651fourone +seven5trjbkhsdxksevenfive1five5 +1seven2drllvgljjt4 +onefkltbmnnpfnqsjtmmkb1 +threeeightthreeonerqzx7 +hrqfpsdxf4 +82five3rptwothree +57fourthree25jlxqrbdfour +3mq13zjzzgztqv +31mdzczk44 +hfdmvpxr925s +fourfourseventwotwo4twofourddc +1six5foursixcqtnvmh +two5sevenlmz9 +1ninexrhcxblntnh881four +35dlmjrzrzqjgf9 +4six1vx +fiveseveneightsixtwoone4 +3bxvkznxsqmfxbqsix +mxkj2six +sevendggctftjtwoonerjcvonesxn4 +3xslllfzsgk2 +1nine3seven +1bbeightfour8gsvtv7xzqqgsqt +sevensixfourhgmxsxndvk3 +6hdkhb5fxzsgfivethree +nine797msnmphf3two +snlbgb7 +753five3st15 +3foursevenkjqldcdvreightseven8hcrqmtdkkx +qdrzr5ggslzvfnfk56eightrdvzmlktj +nhlkccvhtwokprngjkonelhprvsp62 +zqmdvsxpxccgchmd1hprbqkrbn299 +oneninefive1 +7twofive4sdzj73 +stwofive53 +threejsttgvxrhqmsctksn8oneqfour +sixfqvfztln51pqlnvvlx6jkcvkmdkjxnbzfdmt +zzcrjdhbglfrgzxjkb3eightonetvlrnine +cfdz4frpcbfvsevenpvpfoursppzj +9four8nineseven5fivemgsqxj +9onemsdkpvhdbprzbx54two +bhdsevenrbnfxk6vzldmgzrqdeight +2pgbh +2qcq4eight516 +45phskdfcld9gmxbkzdsix6 +sevenmxtwo1sblmbnhxrtzck +2pfsdqtfkplkqbphrhdoneone4five +957zktcl2 +41six +five27zdfqxkkvshsfbjm1txdsf4 +sxsmmzcf3lfrmpsix61threehbdqnvsix +qppcjbnfj4twofour28fdj4 +one9kxxtd8r +fcdeightwosixvhktbjjht7five47pxdtnq +gdkfivezptfjxxqfnxqchjg3jdgvone77 +2twocbzt69rm +7kx4twonine5 +tlnkgxzcdf57nine +4tjcdv1 +5kshzgbs1one7fivenine +gxldrzgctwo2 +8twoninefqmq3dsqxv +9ninefour27threeseven2seven +15fctsthreesgdnndsssix1npln9 +2sixnsqkzt16eightnineqg +zgrskbjbfsixfour9eight58kpdzxm9 +fourthree8fivejgqvdnc +onebgjjllzp5gvcxjsxmone8ninefivejgghfpvxxf +4lxgbrqvsb +86bvrnqqrdmrxdbhtwo9zqnjkvnqkleight +oneqt88 +onethree1 +twosevenfour1six67four +29mnfpjthxdvnh +nlhnine44oneeight4six +1smpfmdsstqcn58fgb +tkpd53 +92twoninexkhcvl1 +fkccpninetnvqvdvlkphknh9 +zplfcxsqhbd7rxmvjdtrngzsdrxtwo89 +2gxxckzmgthree +fpnfttfvmnfone8 +171five +4bmtr8 +153fournineeightwodq +zkkddvk7three4sevenv5geight +512fivefqcmkm1threesixcxdd +6moneeightfpjone29ppcvf +37sixgrmmzlslbxnxmrdtczthreexcmtppqlgskrxzssjcln +dponeight7 +vxfphnfourqzcfxkbsv7rzpmfzrbkm4 +1nsf648 +214twomgvvkktbfrzone +threeqdzhfxkr1nmxxlzrpvtwo7 +8threefive +snrcxfcv4 +964rngbmt +one5kz4 +116nqmtvbcbninefourninetwonenkb +3cvvzsr +49ngfjtwo1threebcpg +pxxjsfmmpsthreeonesixfour2five2 +nvttlcr9sevenxszkjmjzfzqtzznptzqbvtsix8seven +12sixjpmvfptmjseven9sixzmmkqnrlv +hskbdlf3 +pbxthreembsnnthree7sixxfnqdcvrzj +66866eighttwofivesix +mvgjhxzbtxhpsthree9xx896 +nstdhjsp1threethree85five8 +zceightwojbhlkl4 +2bbdmjvqbmmfourqtkfgnvdq +lnvrtfplvfseven65 +ccbslkf5fiveonenine +nine7xfive +92threefour +5jssd4pbft4eight6 +stvcgplkppgrdrkjtxstch3svxzmkjf7 +hmfvpctmmg6 +192oneightggr +18dxpqfcz +xccgpvhhseven5qflqfourkhsxqdhrbscdmbj +4jdceightseven46 +ninedjtjsix7 +eighttqcmmkgvhc67 +kt82 +dfnjmgjsmggrvljm8two4 +2gfsveight +nrtwosixninefour55 +3threesix3six89 +twoseven5hzqsgdvmphnlppt1kjxcvpfsoneone +4fivethreeone18five6 +l8pone5jtfgxffgfrone7 +5zmjgtp2pfshdlonetdflhrz7 +5twonepp +eight46pmncqjdnkbz +7ngmcqsevengzeightvthllqpxbfjgkc5 +lvscttxkct7eightsdkxgffxfhhpdppbgtzbf9fiveone +352threedzpjvtq7onetwonefg +31eight +6zbhrsnzsixxmjvsnfsixnine +tbgdjscgtkn8pdtld +643nbsntbjmbninezfbnkggfivefour +vxnsvnine5seventhree2mksgsjbpkqdgbs +2xchcfiveeightrnldvblbfqnmvmn +5kbpnbtpnzbeight9 +three2eightseven +sszgqcvtmlcmd95six1jmsnfmfmlktdvtskrp +xlmthreemdrvgzfnseven3 +ntwoncnpdjg8 +sevenfivethree968 +four6twooneonejmxgtzz6three +893jfmmnk6lmhqmtxgkmtxq8 +pvconeight3dmprrnmj2cpqmgmvkqtqcn71 +five688seven +67six +54xcthreenlhthreeone7 +6bkt4hlhg7 +kvxpgcnqkhkhxthreerxkxt9cgcnvcvkxdddsdfjrqmn +4sixseventstk3 +qmoneightnine583crcfeight4eight +7sevendxpckzsm885 +seven7threesllgfvccbglbscdg +ninefbnnpvxcmjpjrts3eightzsqmxxkkgg6 +nxhmxngoneqqqxlbqfcr5pkpthcdxtx +threeseven5twocdzkpp +35sixgtqzsnjh6three +sixrbrdblgj2prpsgnl9686 +2seven2 +cdh3 +sixtsfive8pdfivetwonegg +ccsbzxsevenoneeight76 +jbfkngpjlvbtwofiveone1pdphmps +beightdcrtnchtnine6fourthree +sixsxzonenvvkljfthreezhp37 +seventwovd17 +hmfs69one2xeightfive +3sbhjfkjtnlrzqrcrbkbcxzcmsm69nine +njdkcdprjgpn9fs +bg56ts +one542onetwo +ninernsbhqzqc6one4sixgsdcfsix +2onethree24onetwo +8sixmclpsdvvgs6eight7lnzhsgzjxdsn +one5onefour +c1fournine +nbqbgxdtwo8fourxrgszvbxqtwo2 +9nineffsevennine3seven3fnvsxmvrk +tsp5 +oneseven9threesixgjnkv +fourtwo4two3hfnpzhvcx5 +15eightsthhfgsjtqcbxvxqj +jdvssqjd9scqnlsfive2two +three9sevenzdgpjqkzh7four +8th632onezhfcv8 +7sixlcxnhdmphbbbpsxrb1oneprx +four4eightnine +gxbsix7pqkseven +4teightx3five6eight +sevenzrzm72mrgcxld +7foureightthreesixqcddc7smksqzxhqs +hpcpqbhsfivesixninembvbpqphhmrtthree9 +ninexzgctccxbgjxvtngxfvkthree8 +fdmvqcktrjh8fiveglzhchx55khhntcbndddtjccsx +8fivenine +mxsbjjcbpceight18 +vjvddlttpsgbvf99 +5five3 +jrbxmzk46threemmsnhflsqfsfkf2 +gzbpgvmrqninethreedhldl1slvnrhr +nineptdnkjgtsx9 +3bmjnr3eight3 +8ztrxrxrkc2bseven3five2 +six8one5eightrhmmxmhfour +9fourkdcff9xtnhcrjconevvhplone +five94vkxzcqone8zxn +7threeseventwoqzcnrslbp +gtcbsmt52 +8nvdtsc8pxqttwoone2 +prlgthreesix1sspdmqsg +vmppqvn1nfpmmzrfzfbfcvzpjjeight +27sixhpg1fivefxfjxtpggzlqdgnv +7sfjbc5qtqgjvf +7twotwovpnine +cmjkmgszxcc37hfjnpqpbjqseven4 +stt6ninermjlgqnjhghsevenqgg2 +4onejfppfcnkrceight +five6kmzzltwo +524clmmrmntxrninetwoztseven +4ll +fnppsrt9 +seven1sddcbgrcl +72ninejksevenseven6fournine +threesixpjnheight5rsfkhqchmvqrjck +eight45mnhmkqfourhmxcpvjgnpg +3pxrhxkcdonemrcvhv +one97dszxfbmx2 +7pdsrzllzfour1twothreeglkpnckq96 +seventwo18czcxpjmtms4six1 +bfeight3zjdp1 +ndrvltwotbcvzffzml9 +nhfq4two +8mck8oneonesevenone +zdvkq54 +mxfvps1fiveonejvjsnsix4 +skqrqdrphp89rnflzcpnrd +eight382km5 +fourfive87785 +fournbg5sixnine +8fivebzknsixdqtcgbxmfhonerqzlnqs +24six3nbjrjfhnbz8seven +sr9ninetwoztcmhhdone +nine6nineblrlmsevencrchhjvlrsevenfive +1frvmqxkfphpqmvbftffxx5seventqsvninefour +8fivesixeightnqqdxgjprjqvb6 +xkqtnxx5mmdqdcps +96dpbz25sixffzxftthree +88sixvxdhqllvsf146three +51eightnczdonebgfrqjp +eightthreekgdgjlgtkfour242pjjsllpq +ninekxtfournzgqf3djxzgxsixjv4 +84msnmkzxtszrkoneeightsix1gzp +two49sixtwo7cldmnrqrtwo +88seveneightgtqmdtjss +threebzqjcthree1ngmsnine6one +rtvzqfour5oneightkm +tfjgntbmhpdvkb6 +fiveeightsix3one +tjgkznfourzmbzcsfjvlqhchq1ggtqtftwo1 +3nmzhvrmpfive +2threeonedhpldxrclssrmvhgczkztwothreeeight +lldsseven25 +grv2ninezhpsfoureight7 +five3tdkmkshsqfour +two6tfxtmzxffive7flkpkxvssltftxqhvqr +2mnlpmb4fourpjrvpddtl5fourseven +xjrvkqjmsdcpnbzf25fbbbxone +lrvdxjv2eightvhgzp4ngctthreejrclhcvjvqjzqg +1mhxb61onekpzfjzm2nine +bkjoneight88fiveeightthree +eightsix1tmg4fiveshvjxxpvqhnhc4 +9rhbrqnghqzlsfmgfxdvfive98 +9six2threerc9sixfive +19two33kdqdtqspcqhbcbf +qdvzs7t +3fbzdmtpqktbqhgkone4 +nine4threelzxvqztwo9threerpfbhrqm +858 +1csgrrbrmdseven97vqzlngxksvltzvtlv +dql7gfvx37six +onekkpxclxgff7vdz +71three7eightqtxvjjdsjp +znnzvrttr8927 +1rmpcjj +tbeightgkjhr684 +2vzkdvtrrvninetwo4ctv3hmdqjbone +5v998six2vqkb +2four7four +7vxlfive3dccj +91five6ckcshgrxkrgztmv +886v22 +3vqjkkhdbjccffourone +lb4nine8seven6five +658twokxmjfbrj +2onevtdmdnvkqpctx15seven4 +vcbheighttwopmkzsftone7bsfds7 +zcgfive2one8lfbmqg9 +ninesevensevenrqbtzzh96 +1threehsqptqjhkkndxpd44gzbdlmcxq +sevenvxdprjvkh92xzonecmkljhbcnzzfkgjpz +five8eight8zrrkrvbjzcqbtwoeightwogvd +2mdnmbdvzxfldn1eight +tmbmzsbljreight515 +rqbtxhtwoeight71seventhree +gszsxrb7qvmkb7478 +ceightwo9cj5seven +89eight9two +5sixjpcxjrrnjdthree +two1r38onesix +6eight9l6sevenzjcht +fivecqkzbllhshphlseven4ftfivevl3 +69kbqvdronehhczgmvh23 +sfour1lgv +4kvpgtmsix +4vtdk3 +7vfsvrlnlpqmvmhfnp85sevenqlztpt +74cfpxpxrzfour3fivenine +sixsixone8eightxl +gjneightwofive3 +6twoned +jct8343 +kcbqqpv4gqqhvmtcpvhpcngonetwo +sixtwooneonefivef9lkgfr4 +twotwosixtwo3mltrqnj1 +3onezgftz +14ngxgtbfivefour97eight +2bhgf268fivefiveone +znoneight82lbghbsdktoneoneeight +53dqlrxmb842 +1mj1ninefivesszgqp4qk +7eight2qslhpns +gpqcpfgfpbnjpdf2 +threettgjpbspfive948zksmone +tlgkjbrkzn577fourvzrrndxdst174 +szsix9hqhtwo +4fivethreermvhkpnrs1zqpsh4eight +one1gtnpmsevenone +one65tvrldjxngeightxndfptwo +58xlbvgg7 +bhoneightsevenseventwo9threecmlkhdj5nine +fourfour4 +68mvkpvpfmkg4qshqmccprone4 +5foursixmf8fourfour +lfflvxbfivepmlfvfxeightninefouronebn5 +eightjvmbbmpfxs9pxgk98twofive8 +msnrmphszone2vpjscthree +fivesevenonetwovbkddshc9 +279two1onefrh3five +sevengxfive3six3 +16pmtwo7six +qdkrjhjcjl17sbfn +321one88onejvjtfour +4csnrskq +sevenone39five +23vnmrdxh7threefour +77srhjdccjnineseven4gll +vrltwonevxqdrgmpm519fiveseven3 +8zkqjrtrfbgthree +6dmrhjgxeightseven +seven6sevenhh +nine64slonetwotsxqbptkrseven6 +3sfpsix +sevencmmnnzltcpvptnineqmklpttgvcntqzrpxct11 +3vbxntfnsfivebjkpdfourseven9 +9fivefourhghdlxvgonelcrfcqgpq49rcchgq +vjfsgrqhmxjp62 +gqdbm4 +4ninebvvmfdsix +two72fivethreethree7 +194fivefkdk1 +gznjfrsevencvbgqptndceight15lghxgvslpsix +two1nljqmcptdxjdkvb7 +9seven21sixnine +vsxgdsgxsdlq23fourvhfbbtjsfhfive9hkbbqzeightwotps +3eight417bkbmvgeight +mq25 +8fhvm9twothreeeightsixfiveblqr +ddhnrb9sixh1 +nineninedrnchvbcf3cpl7 +434 +rttj6 +dcvgdcdtwo19four +8sixsxshbhmnz7three33six +xrvj7eight421sb +7six8npgxsix4four +2three9 +lfqgpkbmc69eight +6211gkfbvllqtwofourfive +onexfcmsnine53 +xml4vkfgtbqbckknbjhxcgdgqdtv +3bzknzmshp4 +five342vdtmgseven61 +2kfcmblfxb2four +sixeight5threethreenndhpvhrshgfsfourpkbghd +rmz4seven3psixninesevenone +5289 +vrxdlcf937 +2zpclqftm8 +fivefivefourfour56two +seven7eight1vtwo3cjhone +8threethree7six75 +ldkjshplmb8threefiven65slmqlrzgb +2nblpgthqfeightp +mone93 +fourfive43four +1gghztjzh +seventwo18fourfkhjmzpeight +gbonecfgmrrsrcfiveblxhkcfzcbbfpnn76 +92ninefourseven +2kl +9sevensixsixpsqzzndbdf8twosevengjddm +three25frjhjfour23mhvzgcxgddfive +blhbrztvhlhglcrsbfour7five3fdxhdxpvz +qvgkfmtxhd9 +seven4mqt +6fzcfcngzfivesix43 +mjtwoneghtth569sckx53 +seven75gkvvrp +five1onethreeeight4522 +vjkeightwofive1vspseven +14ljczbshdpeightseven +3mpk7fourgrqsqnrj1 +rnlvpksckvbmzfqhvpxxmm6djmtwofourmjfnvh6 +1six7tghttbfsevenv6four +1nineeight5 +twogxd2three +tvrnxjhg8413 +7zpth44mfpcdcsixcppfxsthreeqnzgpp +67seveneightnine +bdkddcsrv3nine7 +xlftwonetwo4rkt +khqtwo2tglvmvmfdhthree12three +twosevennsflmtwo938bsf +8zrgsnr +sixhdnslspbrcsdvxnnk7kjlzxrrlk7bbrjxbxlq +sixseven4572 +rnvkjlz51drqdddlg7clhndmlxnf +kvflkmsseven4xhgpdbfour55 +74sixdcqzj +seventhree35fivetone +72sixonefiveeight6six +ghrzthqfhsp6five +5seven76thprmblnxqbgdcds +925 +one11 +ninetwonine7ninetwonend +vntwonefive2 +h2eightninetnjhvfive +2eightvkrkdjbkxbpsznzd +4psixfseven723 +vctwonepthree49 +xmqvn1jpbjx1sixxznflzk66 +trkkpm881zqkdfvcnhsevenzhnseven +fourtwo5clj2 +2xzrclndckseven24f4 +eight62 +twoshpjzqcf7 +twohbkkrzvpxeighttczsls4six5nineeight +twoeight122gfhfpzhktffour +3htbjtzg8tsztldj +sixtkbcccqqvmzfprjngxnbrxfk9t +267seven +qfqbpzjfour1djfd5zxncnfnfqqpc +qqb5threevtpktwosjjpzxnntwo +fiveseven5rtcnine +xrrcbzrtjgsqkjlnhxt5fivetwoeight +sixgddsix7 +zdsnznxmrbljz7lvdvx74 +qbfvpnxsix3four1lfone +9one9pjtnncsqzhcszp5 diff --git a/2023/_input/day_02.txt b/2023/_input/day_02.txt new file mode 100644 index 0000000..876d2a0 --- /dev/null +++ b/2023/_input/day_02.txt @@ -0,0 +1,100 @@ +Game 1: 12 blue; 2 green, 13 blue, 19 red; 13 red, 3 green, 14 blue +Game 2: 12 blue, 1 red, 1 green; 1 red, 12 blue, 3 green; 5 green, 1 red, 9 blue; 1 red, 7 blue, 4 green +Game 3: 1 red; 12 blue, 15 red; 1 green, 10 red, 2 blue; 1 green, 3 red, 9 blue +Game 4: 6 blue, 5 green; 2 blue, 6 green, 6 red; 11 blue, 5 red; 6 green, 11 red, 7 blue; 4 green, 10 red; 1 green, 7 red, 13 blue +Game 5: 10 green, 1 red, 2 blue; 3 red, 4 green, 4 blue; 5 green, 5 red +Game 6: 1 green, 6 blue, 14 red; 9 blue, 5 red; 14 red, 12 blue +Game 7: 1 green, 9 red, 8 blue; 9 blue, 1 green, 6 red; 1 green, 15 blue, 19 red +Game 8: 9 red, 7 green, 2 blue; 6 red, 17 green; 18 red, 16 green, 2 blue; 10 red, 14 green +Game 9: 1 blue, 11 red, 9 green; 8 red, 1 blue, 9 green; 4 blue, 16 red, 9 green; 8 green, 3 blue, 6 red; 8 green, 11 red, 3 blue; 11 red, 2 blue +Game 10: 8 green, 14 blue; 1 red, 6 blue, 9 green; 6 blue, 4 green, 1 red; 16 green, 9 blue +Game 11: 6 green, 11 blue, 1 red; 10 green, 1 red; 7 blue, 2 green, 1 red +Game 12: 3 green, 5 blue, 2 red; 14 blue, 16 green, 4 red; 8 green, 14 blue, 4 red +Game 13: 5 red, 12 blue, 2 green; 2 green, 1 red, 9 blue; 1 red, 2 blue, 3 green; 3 green, 3 red, 7 blue; 2 red, 13 blue; 1 red, 10 blue, 2 green +Game 14: 5 blue, 1 red, 2 green; 8 blue, 1 green, 1 red; 1 blue, 2 green +Game 15: 14 blue, 9 green, 1 red; 2 red, 15 blue, 12 green; 1 blue, 2 green, 1 red; 1 red, 16 green, 15 blue; 1 red, 12 green, 8 blue; 1 red, 17 blue +Game 16: 7 red, 1 green, 18 blue; 7 blue, 5 green, 17 red; 14 blue, 8 red, 6 green +Game 17: 4 green, 5 blue; 5 green, 1 red, 7 blue; 3 green, 6 blue, 4 red; 2 green, 5 blue; 9 green, 6 red, 6 blue +Game 18: 8 red, 6 blue; 4 blue, 19 red; 4 blue, 9 red; 9 blue, 10 red; 2 green, 9 blue, 13 red; 3 blue, 7 red +Game 19: 8 green, 2 red, 17 blue; 11 blue, 4 red, 5 green; 8 blue, 8 green, 10 red; 9 green, 4 blue, 2 red; 4 green, 10 red, 6 blue +Game 20: 9 green, 3 blue, 1 red; 5 blue, 16 green, 3 red; 3 green, 3 red; 2 blue, 1 red, 5 green +Game 21: 7 green, 1 red, 10 blue; 7 green, 5 blue, 7 red; 7 green, 9 blue +Game 22: 5 red, 2 blue, 9 green; 6 red, 11 green; 6 green, 6 red +Game 23: 14 red, 2 blue, 9 green; 9 green, 1 blue, 4 red; 9 red, 1 green, 1 blue; 6 green; 3 blue, 1 green, 9 red; 1 blue, 2 red +Game 24: 3 red, 7 green, 6 blue; 1 green, 5 blue; 6 blue, 1 red, 2 green; 5 red, 1 blue, 4 green; 6 red, 2 blue, 11 green; 2 green, 2 red, 1 blue +Game 25: 5 green, 1 red, 3 blue; 3 blue, 6 green, 3 red; 3 red, 4 green, 1 blue; 6 green, 1 blue, 9 red; 2 blue, 2 red, 1 green +Game 26: 3 green, 4 red, 12 blue; 2 red, 1 green, 15 blue; 7 red, 16 green, 4 blue; 11 blue, 11 green, 3 red; 8 green, 15 blue, 10 red +Game 27: 9 red; 10 red, 2 blue; 3 red; 8 red, 1 green, 2 blue; 1 red, 2 blue; 1 blue, 4 red +Game 28: 5 blue, 8 red, 5 green; 10 blue, 4 red, 5 green; 8 red, 14 blue, 10 green; 10 blue, 4 red, 1 green; 5 red, 17 green, 4 blue +Game 29: 16 green, 11 red, 5 blue; 11 red, 14 blue, 13 green; 13 blue, 8 green; 3 red, 18 green, 15 blue +Game 30: 2 red, 4 blue, 8 green; 6 green, 2 red, 2 blue; 6 green, 6 blue, 2 red +Game 31: 2 red, 1 blue, 16 green; 10 green, 1 blue, 7 red; 1 blue, 14 green, 7 red; 2 blue, 1 green, 1 red; 6 red, 13 green; 2 blue, 6 red, 10 green +Game 32: 4 green, 4 blue; 1 green, 5 red; 6 green, 1 red; 3 green, 5 red, 2 blue; 4 red, 1 blue, 4 green; 6 green, 2 blue, 6 red +Game 33: 5 blue, 2 red, 1 green; 5 blue; 1 blue, 1 green, 10 red; 8 red, 3 blue, 1 green +Game 34: 15 blue, 7 green; 12 green, 17 blue; 10 blue, 11 green; 1 red, 5 blue, 9 green; 2 red, 10 blue, 11 green +Game 35: 2 red, 6 blue; 2 red, 5 blue, 4 green; 2 red, 8 green, 10 blue +Game 36: 4 red, 9 green, 3 blue; 4 red, 6 green; 6 red; 11 red, 4 green +Game 37: 3 blue, 12 green, 14 red; 3 red, 5 green, 7 blue; 2 blue, 2 green, 16 red +Game 38: 17 blue, 16 red, 8 green; 4 green, 17 blue, 4 red; 8 red, 7 blue, 6 green; 2 blue, 9 green, 17 red; 10 blue, 8 green, 11 red +Game 39: 10 blue, 1 red, 4 green; 4 green, 4 red, 6 blue; 11 blue +Game 40: 5 green, 17 blue; 11 blue, 4 green, 7 red; 2 green, 6 red, 13 blue; 7 blue, 12 green, 16 red; 15 red, 3 green, 8 blue; 12 green, 3 blue, 12 red +Game 41: 13 blue, 3 red, 1 green; 2 green, 10 red; 1 blue, 5 red, 3 green; 5 green, 16 blue; 9 blue, 2 green; 14 blue, 4 green, 5 red +Game 42: 2 blue, 15 green, 3 red; 3 red, 17 green; 6 red, 1 blue, 8 green +Game 43: 8 green, 9 red, 3 blue; 1 blue, 13 red; 5 red, 1 blue, 6 green; 2 red, 2 blue; 17 red, 2 blue, 6 green +Game 44: 10 red, 3 blue; 10 blue, 5 green; 4 red, 4 blue, 1 green; 16 blue, 6 red, 7 green; 3 green, 12 blue +Game 45: 12 blue, 2 red; 2 blue, 3 red, 2 green; 8 blue, 3 green; 4 green, 8 blue, 5 red; 3 red, 2 blue, 1 green; 1 red, 2 blue, 7 green +Game 46: 1 blue, 11 red, 6 green; 2 blue, 11 red, 6 green; 8 red, 5 green +Game 47: 2 blue, 9 red; 1 green, 5 blue; 10 red, 2 blue, 2 green; 10 red, 3 green, 3 blue; 3 red, 6 blue, 2 green; 1 red, 1 green, 5 blue +Game 48: 1 red, 7 green; 1 blue, 10 green, 5 red; 4 red, 8 green; 10 red, 10 green; 2 red, 16 green; 11 red, 14 green, 1 blue +Game 49: 1 red, 1 blue, 5 green; 6 green, 5 red; 3 blue, 4 red, 3 green; 3 red, 5 green, 2 blue; 3 blue, 3 red +Game 50: 17 red, 1 green, 7 blue; 4 blue, 1 red, 5 green; 10 red, 13 blue; 17 red +Game 51: 2 red, 1 green; 1 green, 10 blue, 2 red; 5 red, 1 green, 7 blue; 7 blue, 1 red; 9 blue, 5 red, 2 green +Game 52: 8 green, 1 blue; 14 green, 1 red; 10 green, 1 red +Game 53: 17 green, 6 blue; 17 blue, 9 green; 1 red, 12 blue +Game 54: 4 blue, 7 red, 9 green; 7 red, 2 green; 14 green, 10 red, 3 blue; 9 green, 6 blue, 5 red; 2 blue, 3 green, 11 red +Game 55: 11 green, 4 red; 14 green; 3 red, 3 green; 3 green, 4 red, 1 blue; 15 green, 6 red, 2 blue; 4 red, 3 blue, 15 green +Game 56: 8 blue, 5 red, 9 green; 11 green, 5 blue, 6 red; 1 green, 1 blue, 7 red; 7 green, 4 red, 1 blue; 9 blue, 5 red, 1 green; 5 red, 2 blue +Game 57: 11 green, 19 blue, 5 red; 15 green, 5 red, 18 blue; 16 green, 5 red, 10 blue; 19 blue, 3 red; 9 green, 8 blue +Game 58: 4 blue, 12 green; 11 green, 4 blue; 6 blue, 6 green; 1 red, 2 green; 11 green, 3 blue; 13 blue, 6 green +Game 59: 10 blue, 1 red; 1 green, 4 blue; 4 blue +Game 60: 7 red, 2 green, 6 blue; 1 green, 13 red, 12 blue; 9 blue, 9 green, 8 red +Game 61: 7 green, 3 red, 2 blue; 1 red, 1 blue; 5 green, 3 blue; 4 blue, 1 red, 4 green +Game 62: 1 green, 8 blue, 6 red; 7 blue, 3 red, 12 green; 2 blue, 7 red, 6 green +Game 63: 3 red, 2 green; 3 green, 4 blue, 9 red; 3 blue, 3 green, 16 red; 4 red, 1 blue +Game 64: 10 red, 2 green, 15 blue; 4 red, 14 green; 6 red, 14 green, 2 blue +Game 65: 11 red, 14 green, 5 blue; 7 blue, 14 green, 15 red; 1 blue, 14 green; 4 green, 4 blue, 7 red +Game 66: 6 blue, 9 green, 6 red; 6 blue, 2 red, 4 green; 3 blue; 8 blue, 5 green, 8 red; 17 blue, 11 green; 12 green, 11 blue, 4 red +Game 67: 8 red, 4 blue, 6 green; 4 blue, 8 red, 2 green; 1 green, 6 red, 2 blue; 10 red, 1 green, 2 blue; 1 blue, 5 red; 2 red, 1 green, 2 blue +Game 68: 10 green, 9 red, 13 blue; 2 blue, 2 green, 4 red; 11 red, 13 blue; 4 green, 2 red, 8 blue +Game 69: 16 red; 12 red, 1 green, 4 blue; 1 green, 14 red, 9 blue; 12 blue, 2 green, 13 red; 14 red, 2 green, 10 blue; 11 blue +Game 70: 1 red, 19 green; 4 blue, 6 green; 12 green, 2 red +Game 71: 9 green, 2 blue, 3 red; 5 red; 1 red, 1 blue, 5 green +Game 72: 1 green, 19 red; 12 red, 1 green, 1 blue; 16 red, 6 blue; 14 red, 7 blue; 11 blue, 1 green, 13 red; 16 blue, 4 red +Game 73: 1 green, 1 red, 2 blue; 8 green, 2 red, 4 blue; 7 blue, 7 green, 7 red +Game 74: 1 blue, 1 green; 1 red; 1 red, 5 blue, 4 green; 2 blue, 1 red; 1 blue +Game 75: 8 green, 1 red; 3 blue, 1 red, 5 green; 12 green +Game 76: 8 green, 6 red, 2 blue; 7 red, 1 blue; 2 blue, 9 green, 1 red; 8 red, 13 green; 12 green, 2 red; 7 green, 5 red +Game 77: 3 blue, 1 green, 10 red; 13 red; 1 blue, 13 red, 1 green +Game 78: 2 red, 3 green, 14 blue; 3 red, 16 blue, 6 green; 3 blue, 3 red, 9 green; 4 blue, 11 green; 6 green, 2 blue; 2 red, 10 green, 11 blue +Game 79: 5 green, 10 blue, 2 red; 16 green, 15 blue, 1 red; 1 red, 11 green; 1 red, 11 blue, 16 green; 7 blue, 18 green +Game 80: 9 blue, 10 green; 13 green, 9 blue; 1 red, 5 green, 5 blue; 13 green, 5 blue, 1 red +Game 81: 9 green, 15 red, 11 blue; 11 blue, 9 red, 5 green; 2 green, 11 blue, 19 red; 14 green, 15 red, 5 blue +Game 82: 4 green, 6 red, 13 blue; 5 blue, 5 red, 4 green; 2 green, 7 blue +Game 83: 12 blue, 8 red; 6 red, 1 blue, 1 green; 7 red, 1 green, 1 blue; 6 red, 1 green, 9 blue; 10 blue, 3 red; 1 red, 5 blue +Game 84: 9 blue, 13 red; 8 blue, 1 green; 9 blue, 1 green; 3 blue, 5 red, 1 green +Game 85: 14 green, 5 blue, 8 red; 1 blue, 5 green, 1 red; 10 red, 7 blue, 17 green; 3 blue, 6 green; 6 red, 5 blue, 4 green; 5 blue, 4 green, 6 red +Game 86: 14 red; 20 red, 3 blue; 1 green, 12 blue, 15 red; 16 red, 13 blue; 13 red, 12 blue; 2 blue, 20 red +Game 87: 2 blue, 2 red, 10 green; 8 green, 9 red, 1 blue; 11 red, 1 green, 4 blue; 13 red, 1 blue; 11 green, 16 red, 3 blue +Game 88: 5 green, 4 red, 1 blue; 3 blue, 8 red, 10 green; 11 green, 7 red, 4 blue; 11 green, 5 blue, 4 red; 9 red, 9 green; 4 blue, 6 green, 9 red +Game 89: 2 blue, 2 red, 5 green; 2 red, 2 blue, 3 green; 2 red, 1 blue, 7 green; 6 green, 1 red, 2 blue +Game 90: 4 green, 1 blue, 5 red; 2 blue, 2 red, 10 green; 2 green, 8 red, 1 blue; 10 green, 5 red; 2 red, 3 green, 2 blue +Game 91: 16 blue, 5 red, 15 green; 4 green, 7 red, 3 blue; 4 red, 8 green, 12 blue; 4 green, 8 red, 17 blue +Game 92: 13 red, 2 blue, 12 green; 19 green, 7 red; 17 green, 2 blue, 3 red; 6 blue, 11 red, 10 green; 6 red, 15 green, 3 blue; 6 blue, 20 green, 11 red +Game 93: 2 blue, 3 green; 1 blue, 4 red; 1 red +Game 94: 3 red, 5 green, 6 blue; 7 blue, 5 green, 6 red; 9 blue, 1 green, 2 red; 4 blue, 1 green, 4 red +Game 95: 8 green, 9 red, 2 blue; 7 green, 7 red; 2 green, 4 blue, 6 red; 6 blue, 2 red, 2 green +Game 96: 11 blue, 4 red; 1 green, 3 red, 14 blue; 2 green, 3 red, 8 blue; 7 red, 1 green, 3 blue; 8 blue, 6 red, 2 green; 9 blue, 3 red, 3 green +Game 97: 5 green, 13 red, 7 blue; 2 blue, 12 red, 6 green; 10 blue, 11 red, 3 green; 4 green, 11 blue, 15 red; 8 green, 16 blue, 1 red; 15 blue, 4 red, 5 green +Game 98: 3 blue, 1 red; 4 blue; 2 green, 1 blue; 2 green, 1 red, 5 blue +Game 99: 4 green, 3 blue, 9 red; 6 blue, 5 red, 3 green; 2 green, 4 blue, 7 red; 8 red, 4 blue; 2 green, 15 red; 4 red, 5 blue, 3 green +Game 100: 8 red, 4 blue, 4 green; 10 blue, 3 red, 4 green; 10 green, 4 red; 18 red, 9 blue, 2 green; 12 red, 4 green, 2 blue diff --git a/2023/_input/day_03.txt b/2023/_input/day_03.txt new file mode 100644 index 0000000..eb744d3 --- /dev/null +++ b/2023/_input/day_03.txt @@ -0,0 +1,140 @@ +416.........................559...............417...............785.......900.......284...........503...796....992.......................... +.........702*....772............378..569.........&.49..606...14*..............$.453*.........307....*......$.....-.................995...... +.....................458...856......+.........+....&..............680.......104.............%....516.................................*...... +...........822..174..*.....&...........711.746.......&............$....../.............656....#...........265=......634.*.............430... +..827.137..*...*....39................*..............856..............767........522......$..773....619..............*...287....501......... +..........726...511.............*.....320........476...............................*................%...899....72..731...........%....$..... +.....861..............232....223.933...............*.@........424*618.858.......................................$.......338.205........535.. +.......#.............-....................676...713...427.................-.......615.........126...................=..*.......*...&........ +....40..........996..............520.974.*..........#......*.566........907......................&...214...996*911.115.363..960..897........ +....+.............*....................$..172.....559...763.....*............554......*.............*....................................... +.......527...#.....90.+....66.................................890..............=...802.93.131..791...209......&........928......303....$.... +950.....*....773......105..............725........................................................%............886.......*........$.384..... +........383......741..............@..=....#.....179.18..%974..........624.......64.266.................701...........%..671.721.........942. +..................*.............914..548..........+.*.................*...........*...................*.........834.394.....*............... +.......502*80..960........................25........464.........831.846........25.........329..985...458.+.....&................377..659.... +..........................................*.....292...............*............/..................@......350........938............*....$... +...738..............428......+.......311...742.........236*631....816.&......+....86.........81.......................*.973*341.266......... +......*.....673......*......614.........*.......689.48.................450...816.....754...........258..@585.......154..............@....... +...231.....#.........681...........855...775..........*.....=..257...................................*.............................469..=682 +........#...................807...&.............418.19.....259....*459..906...185.356.......778.......230....................556............ +.......924.........459......*..............804.=.........................*...*...........&....*................=........836..+......618..... +.....=............#.......900........+...........702..383........%..*...250..503.......637.808.......97/....@...370.......&........#.....710 +..988........685............../663.273...........*...@..........16.251...........$..............*..........964.......658.....537........*... +...............*......171*......................714.....543............737.....372.............941.............113..*....=.......853....733. +............470..161......508.....56...170.............$...................389.....544.....208.....98.........%.....617...884......-..@..... +.766.591............../.........-......*.......210.........618......*874....-.........#...*....129.=..194......../...................992.... +....../....170@..140+..753....918....467.854....*................989..........979...............*.............-.907...276...931*618......... +..700............................................801....929..859.....#..........*.............594.493......981..........*................... +....+............173..............................................251........629..........970........*................136.........388...*... +......721.......$......911....766..................541.234....=...........47......614....@.....*217..885.680.742....................#..84... +.377*....*81.............*.......&...937...........+...*....155..@......*............*......648............&...*.....&401......493.......... +.....1.................533............*..399...........861......951..709.331..126.....876.....................289.........@.....*.......*... +..........107....452-......594.888.431....*..+660...........79................................$......275*876.......978.....594..400...39.... +.........+................*....*.........925..........$.......*........599.......228..........60....................+....#.................. +...283...................177...708...........642....661........294........*............................288*793.867.....482.479.769....73.... +...........617..855*...&.............605................783.91.........847................&...../...............*..#..........*.......+..... +.672..303+...*........967...............*453.....884@......*...208.949........*..........986.....249.....352..818.596.56.................... +...*..........88...............569.....................975.....*.....*..638....619.......................+.............*.......*.......462.. +....500.....=...................*.................*205..*..-...228.508....&........................395..............845.....683.365....*.... +........197.672.841..............214.=...847...912.....24.349...................%....584.257............152................................. +.626....-..........*..447............714....&.....................463....287...360........*............*...............*.................717 +..........53......334...*........................*167......................*.......................554..246...........295.396......./....... +.......24..............92...........897.......220...........................930..703...414.....711..*.........723.........*....117...146.... +.......&...........548.....324.21......................622.........820.404...............*....../..139......&......*.......578...*.......... +.....*......204......*..........*.............226...........663.......*......555.992.....502...........631..49.#....366........677.......... +..958.350.....*......44...694...449..-39........*...........-...786.........*......*............................140......................... +...............477.........*...................815..............*..........815.................521....................&...273........103.... +.........828............781....464..................276......646....665-............924..........*.......955........759.........934...#..... +........*..........*..........*..........15.193.......*.....................&.................808....347*......963........*....+............ +.........810.....360........638...434.....*....*751....812.....573...........85.........+.........95.......892...*...153...220..........187. +....714*....................................................80*....162=.................214...........842...&...39.......................... +........265.........................51.......285$.......................586.......=.................................*.....*..............948 +..989..........22.=......374.......%....................142.......736..@.....507.636.797.....273.........872.....567.978..334.....382...*... +..........@.......68..=......................116.130.......%.250../......-...=........*.........*486.415..........................*....813.. +.......505............61..140..........435..........*691......*........852..........571....408..............12......80.......228...109...... +.........................*.........207...*..24................402.=...........................@....................../...162................ +....285.................672.552........492....$./..................3..620.391...............................179............*................ +...*..........159...428.......*.................390.111.........$.....*...*..................348.355.481.......&.210..99...41............... +...52......12..@..........808.810.897...................663..280....57..............476.............*............*.....*........208=........ +..........*...............*.........@.286..................*...........................*..........................905.296..............148.. +.......298......119.....172.................622$..637................#......342.......679.111......-968..104*478............#.......*....... +.../.............*........../......................*..............658..........*718..........*136.....................503.899....889.498.... +....691........341.262..36.549...........386........437.............................662...........848............#......*................... +.......................*..........936...*...............................-...........*......516....%......358....707..535...........841...... +......$..............639............*..798.../..67%............137...716.......313.247......................-............@.....371.......... +....433.677..605.267................1.......930........478........*........565*................................869.......372..@....228...... +...........@..*..$...794.........................74.......#./......833.348.......................................+................*......... +......865...............*.........................*..........839.....................=......................................916..84.@....... +.................-....451........541@......468..684....18............759.............499................124.....426*.........*......882..... +...68*...........614........509...............*.........&...956*308.%........&....36...........480+....../..........917....32....#.......... +......363..377.............*..........441.....418..........................279.....*.................139..........................944....... +........................412............*..........%....920*585....526*............931.346&.807..840.....*.626-...#....................923... +.....283.....924...+..................628.......33....................908..766..............*........336..........446...........191......... +...............*.249........@264..35...................502.791.#...........*......=............126....................957....71....*.768.... +.........144&.36.....216.........*...........................&.730..........201..581.704.........$......715.............=......*.......%.... +...349..............*....598...949.........189....981.....#.............524...................*............=................440...847....... +.................967....#..........999*6..%.........-......604............&.189.626...#774.159.647....................168.........../...329. +..............................................481.....*........................*.................................747..%.................#... +..........245...878.......495....57....841.........351.517..........-297........................343.599/........&.......360..........-...... +430........&..............&.....*...&.....*885...........................9....392.......93..336*...........................*321.....86...... +....469......#.................999..796..................899.........250*........$.......*........247............................+.......328 +......*...696...615..300..603..............................*....232...................402...501......*.......77.271.....@.........146....... +......170......%....$.........*..991..........782.49.......128.............................*........161........*.....648......123........... +..........646................901..*.............*......134...........517..2..287........513...............................644...*........... +...................999*620.........541.379.....488..18*.......................*...............208....931.338..%143...........*...19......... +...+.......938...........................*...%.............&........626......268.418......841*..........*...............820.395..........913 +.723...834*..........+............162.667.....84............803.804...*............*................399........172..530*.................... +.....................596............*............................./.287............852....623....@.*..............@........168...965..*17... +.....=488...................758....607.....&......53%......................105.683......-...*.860..244.....&....$....232.................... +.............................*..........333....................197........+....*......334.954.............686...464...............544....... +.139=..............754...993.677..../.......933..........391....*....357*.....952......................@..........................*......... +..........831............../.........94.600................+.121.........183........18..686.....665*..823...........575...........68........ +141...800....*....692...........254@.....*...819-.....................................*..@...................17.......*...815...........686. +........%.602........%.................186..........562.93....774.....................11....948....912.........*328..243.*.................. +.......................................................*..........607....280..................&....+.....................548.&897.100@...955 +......504.....605...........889@.............975..664....$.....#............*....141.................378%.........812....................... +.....=...........*.....730...............%...............899..480.....*....375.....-.444.........47*.........@63...........828.....468..462. +.......607.../...23....=......=........383.............................522............*.............433..360..................*372...*...... +........*...975.............428...................592*......@258...114......%......431...................*......+........658.......560.163.. +........16........................329.......315.......973............*...333....@.......$....782..18...58....533........*...............*... +..327.............563...889.......*...........*..595...............913........671..354..937...%..*...&...........&.787...975.......676...247 +.....+..&...401..*..............713........=.757...#.873*47...#465..................................440..588/..859.%..................*..... +.665....133...%..196....907..............348..................................162........305...................................163.-........ +....*....................*...........170.........222.804....784..............*...................................................=.742...... +..239..338.....27-.437..543.........*....609......*..*......-...............582..-...........343*560....852.../....636..263................. +..........*900.......*............17...........948.....597.....=....922...........682./255................@..35.......*.......211-..#....... +.......*...........686........984..........78......896*......13........+....................985...&....................278.........876.835.. +....630.82....$851.....905.......*..281...*...............................352..........*746........215.877....845..........471.852.....*.... +.........................*.....757.*......625...........924......878..........912...............-.........*../.....538%......+.........871.. +..954*712..977.....-..762..........236.........527*674.*.........*........811*.....228....&.....5........739...483.......................... +..........*.......470..................................707....363.................*......525.......303..........*........463....537......... +...460...947...............130.....757./96........*.................=...529....+..466........527................65..%648....=.....*......... +.....*......................$....../..............968..............479.&....630............................598.................952.......... +.......&..........793...................................514...............-...................311..........=....83......#.............124... +.975....399.......*...-.......*814...663..................*....*...........381../...............*.............@.........284............*.... +...*............367....198..........@.....992.....716*529....96.................729.329.688...%.322.-......67.79......-.......335....997.... +488............................632........*...../......................387.............*....225......491.............391..750...%........... +.......861.527......778.165.......*........187..916.......845....-....*.......873.................................@......................... +..545.....*.....$.....*..*......627............................736.376..845...*....594........+.......171.........292...........*750..-..... +.................407.403............+...342.................+..........*.......897..........400.......$......................910.......350.. +...........................40..284.66...*......494..........255.......653..............866.................942=..................*52........ +....&........827.......296...*........$.401......*..............892*...................$.............1.164.......343..........485........... +.930............*.........*..944...308...........763....../.........62.....113....=...........421........*..........................580+.... +........50*.....934......705............................999..................*....541...............847-.950..............*131.............. +...........209....................................&404...............276..242.............723.652................873...313..............24.. +......*........606....550#.....2./........@..................899.......*.....................*..........235..112...........704.....337...... +.......837....*...............*...83...993.....*416.........-....580%..535......../.....-204...............#..*.....93+....*...723./........ +..............168.....753..593..............504......./........................488..............=.............458.......872...*............. +...#85...................&......911/...................880........315..872..........=....494..349....466..428..................40........... +........939........648......................*................227...*......*.......924...*...........*.....*................................. +918*......&.@........*...902..269..834....87.826.........../...*...919.118...817......109..........933..643...........&..............-...... +....949......883...111..%......*...%..................710.464.943.........../...................................842....305.....469..289..... +..........................%...974......*407..168.647...*..............617.......498/.....848...........@99........*...........+............. +..........176...........120.........469........&...#....997......464.......274.............*......./............477.417../.......738........ +.........*.......964.........291..........................................-.............2..29...272..465...............-..819........718*265 +....298...747.......#.......*.....+745...........460...741*762.275...491.......+.735*34.*............-....*841......+............*.......... +...*........................593..............298...#............%....$......225.........943........................23.....702.601.616....... +..889................695........654..750.....*.............637........./...............................780....*726....233...*............... +..................../.................*.....453.....642....*.........828......@...94...........152/...*....790.......*.....445......../..... +...........................51.......681........................271..........719.......................964......399..426...............456... diff --git a/2023/_input/day_03_part_01_sample.txt b/2023/_input/day_03_part_01_sample.txt new file mode 100644 index 0000000..d47d149 --- /dev/null +++ b/2023/_input/day_03_part_01_sample.txt @@ -0,0 +1,10 @@ +467..114.3 +...*...... +..35..633. +......#..3 +617*...... +.....+.58. +..592..... +......755. +...$.*.... +.664.598.. diff --git a/2023/_input/day_04.txt b/2023/_input/day_04.txt new file mode 100644 index 0000000..96c227d --- /dev/null +++ b/2023/_input/day_04.txt @@ -0,0 +1,189 @@ +Card 1: 44 22 11 15 37 50 3 90 60 34 | 35 60 76 3 21 84 45 52 15 72 13 31 90 6 37 44 34 53 68 22 50 38 67 11 55 +Card 2: 42 14 40 24 51 49 47 73 34 74 | 40 22 48 65 34 81 24 97 14 49 1 98 66 42 71 74 28 11 47 3 45 63 73 51 87 +Card 3: 16 48 80 51 41 87 46 77 23 8 | 10 77 41 46 8 36 85 16 87 27 97 13 15 35 45 80 63 37 29 60 48 51 82 61 23 +Card 4: 82 88 65 64 33 89 23 49 11 92 | 11 33 91 15 81 44 29 27 63 23 1 13 74 89 88 8 37 22 51 92 65 7 49 82 64 +Card 5: 36 61 30 42 64 45 80 26 84 60 | 50 46 76 4 12 32 38 23 36 45 44 61 53 94 37 33 11 82 84 87 26 19 93 15 98 +Card 6: 75 63 86 49 17 26 59 70 18 57 | 87 3 2 47 65 21 24 74 28 17 34 33 16 29 63 14 60 95 83 15 41 70 56 49 23 +Card 7: 57 36 32 45 2 5 79 98 73 39 | 97 10 57 45 4 39 32 93 86 79 70 58 76 2 83 1 49 29 36 98 44 94 73 81 5 +Card 8: 85 17 70 99 44 11 42 39 83 57 | 71 94 85 1 44 66 83 42 70 73 39 33 88 56 11 31 87 7 99 8 49 43 57 91 17 +Card 9: 32 21 51 36 59 24 47 11 61 96 | 31 76 57 64 14 91 73 78 5 95 63 69 84 51 58 94 72 28 19 66 21 67 3 97 61 +Card 10: 83 96 30 51 6 24 7 65 39 97 | 67 85 39 71 93 37 35 77 56 25 82 3 89 47 8 88 66 79 7 87 84 52 11 70 1 +Card 11: 83 1 30 54 34 78 82 68 10 55 | 66 76 54 83 78 68 21 82 60 34 84 23 20 64 86 1 96 36 98 15 74 63 40 97 59 +Card 12: 74 1 6 81 56 43 65 38 3 4 | 6 24 34 46 64 81 73 52 72 62 54 44 77 98 40 7 17 63 79 91 29 71 82 9 56 +Card 13: 41 28 47 58 2 5 75 78 72 94 | 92 95 96 46 90 50 1 11 62 37 14 15 41 13 43 21 97 76 60 72 99 9 63 45 64 +Card 14: 75 48 10 62 12 44 92 20 68 19 | 58 8 30 25 77 73 23 68 31 53 74 39 97 88 7 52 4 10 86 35 3 94 81 20 63 +Card 15: 40 99 7 94 75 66 24 71 17 33 | 62 87 68 82 79 54 95 69 26 7 20 18 64 84 63 52 53 35 50 86 34 9 14 27 73 +Card 16: 5 29 30 84 1 38 35 32 8 81 | 67 65 29 96 5 11 82 71 95 93 38 76 34 77 6 37 21 17 2 52 94 58 99 3 84 +Card 17: 59 77 36 26 93 27 40 65 61 32 | 63 91 45 80 64 12 97 65 7 87 47 3 18 36 77 92 23 9 31 20 99 51 13 75 81 +Card 18: 6 56 47 29 45 63 41 33 5 4 | 95 92 45 10 81 38 27 20 65 91 57 80 72 30 18 88 15 17 55 50 11 59 40 36 86 +Card 19: 55 47 86 94 12 6 91 22 53 69 | 20 97 28 80 40 10 48 51 38 42 66 36 4 82 46 76 32 31 27 54 50 57 70 99 59 +Card 20: 98 62 51 84 26 19 35 89 32 14 | 57 94 93 87 96 42 18 53 73 88 27 61 43 59 80 50 97 64 37 6 72 13 52 40 92 +Card 21: 7 14 52 40 96 87 38 73 42 95 | 87 5 73 95 42 86 11 93 61 96 52 80 75 40 85 7 53 3 50 64 14 44 38 39 12 +Card 22: 25 18 51 7 49 95 30 26 96 2 | 92 87 2 11 95 18 26 69 49 48 14 30 94 51 24 62 96 31 98 7 60 16 10 25 93 +Card 23: 90 26 77 33 22 63 17 49 9 25 | 49 37 27 17 84 35 90 9 63 70 69 15 22 91 14 28 86 52 26 11 77 42 25 67 33 +Card 24: 9 35 28 79 83 60 74 12 75 30 | 97 60 72 61 74 94 91 84 22 79 8 57 66 20 28 35 30 75 9 71 76 83 12 77 2 +Card 25: 86 67 66 31 5 79 28 21 16 71 | 47 16 7 93 15 73 27 92 60 62 88 63 94 51 12 24 21 82 84 97 86 75 8 72 45 +Card 26: 65 48 46 57 31 96 42 98 14 89 | 84 98 58 31 76 85 96 94 52 41 40 67 34 74 83 54 42 14 10 65 48 57 79 46 89 +Card 27: 34 83 70 7 13 72 12 74 63 67 | 34 71 12 31 11 36 61 94 23 80 49 24 13 7 52 37 41 83 65 90 70 38 98 5 74 +Card 28: 11 33 66 25 89 28 17 98 37 5 | 78 13 28 25 54 51 66 5 43 6 37 97 89 26 98 11 33 64 40 17 61 74 31 60 39 +Card 29: 2 27 73 62 83 85 20 46 29 8 | 85 46 18 11 95 72 2 84 13 20 29 76 73 60 1 4 93 61 30 62 83 27 68 8 16 +Card 30: 27 77 35 2 13 49 33 47 96 75 | 96 13 35 31 75 79 8 77 28 45 61 74 27 34 92 38 33 48 49 76 2 47 5 10 54 +Card 31: 24 42 38 83 20 40 78 51 73 13 | 83 38 79 42 13 51 69 88 75 94 41 22 14 97 8 24 20 76 78 31 40 6 28 73 87 +Card 32: 78 68 70 87 52 71 30 93 96 77 | 60 24 31 14 52 4 78 71 83 45 27 93 82 85 77 30 38 2 96 94 70 87 68 61 25 +Card 33: 91 33 16 29 31 87 61 63 58 14 | 35 2 55 19 79 87 28 63 13 60 3 14 54 58 29 91 53 61 11 22 33 25 52 16 31 +Card 34: 31 76 55 66 39 70 78 89 4 83 | 78 62 46 32 31 61 51 1 83 22 89 96 72 80 66 69 50 20 11 40 24 76 90 42 71 +Card 35: 35 32 93 88 9 21 58 24 85 69 | 77 21 51 7 82 87 58 39 65 11 56 89 16 83 22 68 14 70 74 45 35 71 34 97 61 +Card 36: 22 57 6 69 88 46 71 58 96 26 | 6 14 86 50 12 76 55 35 8 17 46 5 80 52 83 57 84 3 60 93 34 67 43 97 11 +Card 37: 7 95 47 52 62 18 20 68 93 26 | 3 25 57 32 95 33 87 6 38 13 77 22 15 88 28 89 96 17 59 34 4 58 44 69 23 +Card 38: 52 36 66 89 79 6 2 86 51 37 | 70 28 40 39 61 48 33 58 88 90 75 27 50 98 4 34 10 57 5 13 80 62 76 9 67 +Card 39: 67 43 21 57 36 89 95 94 7 68 | 15 82 29 85 14 23 73 24 32 76 94 90 36 83 51 6 5 41 68 55 72 58 21 75 53 +Card 40: 29 83 62 57 2 44 99 17 81 59 | 28 66 53 11 79 57 13 50 52 71 12 42 32 54 74 56 8 59 67 70 18 65 61 48 85 +Card 41: 43 61 32 38 66 2 28 84 74 41 | 22 80 19 57 33 75 60 89 78 39 13 58 27 16 34 21 23 68 66 49 25 55 44 8 28 +Card 42: 95 17 92 58 87 97 82 98 44 43 | 48 76 45 68 12 52 93 25 26 35 11 92 82 3 67 85 23 17 61 34 2 59 88 60 74 +Card 43: 95 82 60 66 62 11 30 16 68 4 | 43 84 4 31 23 77 66 89 40 96 2 65 51 75 21 35 41 8 10 9 69 54 50 98 37 +Card 44: 53 20 33 50 67 80 4 37 61 26 | 38 92 72 12 30 56 7 44 69 70 57 17 93 31 39 62 32 97 3 5 61 1 68 10 49 +Card 45: 17 36 61 18 49 99 48 13 90 46 | 98 47 19 29 76 71 96 33 59 55 43 38 73 7 66 58 28 23 60 8 39 65 95 86 81 +Card 46: 4 94 23 22 25 35 40 55 50 51 | 65 62 27 32 48 3 83 53 87 54 8 79 95 49 68 97 56 15 11 30 5 14 46 80 77 +Card 47: 75 90 15 60 14 87 96 67 80 26 | 21 3 91 79 17 81 46 94 69 37 12 52 64 58 78 28 88 9 93 85 44 34 68 29 83 +Card 48: 76 96 28 52 81 54 55 51 10 45 | 48 67 54 93 38 28 70 87 31 82 26 5 60 85 10 15 91 34 84 72 12 62 17 51 97 +Card 49: 50 78 76 51 63 60 2 98 72 99 | 13 97 93 77 40 87 66 48 26 21 62 94 23 61 12 67 54 47 56 70 79 30 11 81 74 +Card 50: 6 60 84 70 96 59 85 91 78 88 | 61 3 40 12 35 76 94 48 54 71 51 22 87 11 97 1 57 5 49 53 98 83 82 74 46 +Card 51: 96 4 60 57 67 47 86 97 52 23 | 9 90 69 54 67 52 57 60 42 7 59 33 88 97 98 26 92 13 80 17 77 82 23 4 86 +Card 52: 50 62 38 21 94 19 88 85 83 80 | 77 17 31 23 90 83 85 81 5 32 6 82 46 38 52 50 19 35 59 80 96 98 37 61 62 +Card 53: 19 29 28 50 43 44 91 30 41 24 | 30 50 68 94 91 16 18 41 42 21 32 10 69 84 61 20 13 66 31 88 28 35 40 45 33 +Card 54: 70 66 59 79 69 52 9 72 26 3 | 88 81 36 64 5 91 7 97 20 6 44 85 54 77 60 45 11 1 73 61 19 99 40 12 90 +Card 55: 41 85 95 15 52 42 57 25 88 32 | 6 94 68 90 98 87 96 50 89 95 37 84 16 55 44 52 31 14 74 81 69 40 73 20 70 +Card 56: 44 96 94 25 41 73 5 3 81 18 | 16 36 34 85 70 42 69 28 35 5 84 23 43 67 68 32 1 29 8 48 27 63 95 41 56 +Card 57: 96 13 47 23 35 79 58 80 94 1 | 67 39 94 4 22 17 64 70 53 82 83 97 98 32 37 78 6 74 13 48 30 77 81 1 56 +Card 58: 26 82 95 34 9 48 62 81 27 32 | 31 4 20 46 28 14 35 45 68 92 67 57 72 84 79 33 58 65 64 82 76 29 93 89 96 +Card 59: 8 52 53 88 76 92 44 59 14 5 | 21 47 42 89 3 56 48 66 30 68 81 75 26 54 50 97 40 60 15 49 57 4 13 84 32 +Card 60: 71 80 66 49 16 39 76 68 74 82 | 23 72 41 78 1 96 50 73 79 13 65 59 32 29 38 63 11 92 64 54 30 22 52 95 25 +Card 61: 28 1 74 52 25 9 49 5 19 42 | 27 74 94 42 13 40 62 19 25 1 24 21 59 52 22 50 30 8 28 49 53 5 39 23 9 +Card 62: 87 62 88 31 17 95 91 42 37 28 | 78 47 11 29 50 20 28 17 58 76 18 91 25 39 22 60 65 51 16 67 27 57 35 74 5 +Card 63: 21 64 77 76 14 59 8 32 19 79 | 32 77 27 8 59 10 31 76 89 79 28 47 21 5 61 40 43 14 24 97 19 64 22 98 87 +Card 64: 50 35 23 27 79 15 90 37 88 99 | 54 89 97 22 59 66 90 79 93 65 23 32 17 36 15 85 50 28 37 27 48 55 99 62 88 +Card 65: 55 18 38 58 26 41 36 78 22 14 | 51 33 49 26 14 22 55 18 36 79 43 67 68 25 94 85 20 6 61 2 65 32 66 50 48 +Card 66: 97 52 63 58 79 51 55 90 28 87 | 59 48 7 25 47 85 79 87 37 77 56 43 41 24 55 70 99 17 28 58 49 51 52 66 60 +Card 67: 53 29 43 54 87 33 14 47 6 50 | 53 47 91 58 84 46 99 60 6 34 33 98 63 66 87 65 50 93 14 54 77 9 95 29 8 +Card 68: 65 64 10 35 78 62 98 82 9 11 | 81 78 62 59 65 64 41 35 32 10 58 97 12 60 57 21 82 11 99 9 84 98 8 44 26 +Card 69: 97 99 95 42 64 80 9 46 30 29 | 42 4 46 89 99 54 97 82 3 90 9 80 38 51 70 21 34 19 30 57 29 95 73 12 64 +Card 70: 83 18 66 53 81 21 60 74 12 79 | 39 90 32 83 2 59 74 29 87 66 60 14 8 51 78 67 72 42 64 30 70 82 81 80 73 +Card 71: 49 94 16 23 44 83 95 74 29 78 | 52 19 94 10 49 95 83 40 23 15 44 85 90 43 1 74 78 53 27 5 48 64 30 55 63 +Card 72: 41 28 95 19 80 15 38 53 27 46 | 3 60 71 33 56 80 68 29 74 10 26 27 20 47 6 70 28 53 65 37 62 8 91 69 99 +Card 73: 3 62 63 4 6 8 33 87 44 32 | 3 40 87 46 6 2 86 99 51 61 65 39 62 44 90 55 53 36 56 33 16 27 59 1 32 +Card 74: 19 44 31 74 18 58 42 28 60 14 | 8 30 34 95 6 64 70 99 43 88 5 26 16 79 52 24 73 65 38 17 78 82 57 48 90 +Card 75: 41 97 5 43 40 56 91 83 23 69 | 36 37 30 95 53 67 69 91 96 2 65 63 78 84 99 13 42 26 12 60 29 94 6 5 80 +Card 76: 57 3 77 91 60 49 29 9 83 5 | 79 85 54 50 31 25 90 80 68 73 45 92 61 2 24 63 52 6 11 8 66 84 87 7 88 +Card 77: 76 95 63 87 86 6 46 73 55 44 | 59 55 63 18 2 22 72 79 14 86 96 76 37 5 90 24 11 44 97 56 42 20 7 70 61 +Card 78: 78 29 52 51 56 13 39 33 97 83 | 25 87 77 2 7 30 76 90 22 93 92 14 37 65 88 67 42 98 62 23 32 50 81 31 47 +Card 79: 5 93 63 7 78 64 98 54 44 65 | 26 82 37 50 9 46 22 51 25 88 59 21 77 94 67 6 41 45 98 92 65 61 70 34 12 +Card 80: 46 80 27 3 30 89 29 10 85 81 | 8 60 63 84 4 2 47 50 70 32 26 36 13 57 72 90 6 83 94 9 22 88 58 34 33 +Card 81: 15 40 62 36 71 82 8 96 92 53 | 35 52 21 6 29 77 58 85 48 59 90 19 64 98 25 78 1 34 31 63 32 61 5 70 33 +Card 82: 39 28 83 51 73 60 8 94 89 93 | 26 48 85 54 75 77 22 23 65 5 20 1 3 40 62 45 11 55 58 84 76 74 13 86 2 +Card 83: 6 72 1 41 73 33 97 29 96 28 | 15 92 75 12 17 27 95 88 58 82 69 33 7 81 76 62 6 55 93 79 98 51 99 8 13 +Card 84: 86 32 71 28 75 79 73 62 4 58 | 73 71 40 28 91 76 36 51 47 32 24 54 83 65 74 4 86 7 75 26 58 2 37 69 45 +Card 85: 22 81 1 13 98 74 82 7 89 14 | 13 1 71 46 54 63 65 76 3 83 21 57 90 80 30 37 4 78 81 64 32 87 73 89 88 +Card 86: 22 14 97 63 31 52 71 28 18 60 | 50 14 73 18 24 51 5 29 70 28 63 40 9 62 59 37 92 90 95 83 4 22 93 77 13 +Card 87: 65 43 25 31 68 19 8 26 69 12 | 20 84 46 5 41 4 63 52 74 96 76 70 35 55 62 77 88 54 17 93 85 26 72 83 29 +Card 88: 87 35 32 94 63 95 76 56 89 48 | 90 7 48 65 54 35 50 45 94 26 40 2 95 88 22 73 13 33 87 92 61 76 72 81 86 +Card 89: 55 64 85 51 56 52 17 49 27 5 | 19 17 52 31 56 46 82 79 55 23 9 95 54 94 41 90 64 49 62 5 51 75 27 85 7 +Card 90: 21 96 79 30 97 23 61 66 95 50 | 6 1 50 2 87 97 18 76 65 94 75 61 51 59 28 8 21 93 95 54 55 66 57 26 62 +Card 91: 36 4 17 66 2 75 55 53 12 62 | 36 31 73 56 47 60 34 38 76 95 23 41 29 66 9 63 70 64 27 5 69 28 15 11 7 +Card 92: 95 6 85 38 77 58 29 4 87 96 | 5 4 87 77 84 64 23 15 95 52 24 75 12 38 6 96 31 57 85 74 80 89 25 36 97 +Card 93: 21 47 40 11 25 3 45 27 2 17 | 83 40 57 76 91 11 31 3 69 27 8 54 2 43 66 34 72 20 85 22 9 71 50 21 32 +Card 94: 48 68 49 4 7 33 6 73 1 95 | 19 46 47 96 38 63 52 18 68 61 45 86 76 85 42 80 92 17 36 10 3 72 37 59 64 +Card 95: 69 42 39 84 31 9 85 6 45 2 | 19 74 33 71 55 22 5 60 2 66 40 26 70 4 12 64 43 30 16 98 17 50 85 27 62 +Card 96: 73 42 99 21 12 29 77 94 1 26 | 46 5 63 64 83 75 74 86 69 89 79 57 60 48 37 13 96 43 72 4 23 98 59 80 92 +Card 97: 16 29 15 98 34 20 91 35 21 44 | 39 38 8 94 59 24 97 84 49 7 63 55 33 73 99 57 70 17 90 22 78 36 54 42 27 +Card 98: 32 83 45 81 73 25 58 84 74 86 | 72 1 39 93 36 47 16 20 2 15 34 30 3 7 66 50 89 26 99 13 87 68 28 41 8 +Card 99: 89 83 59 69 4 22 47 37 20 60 | 13 10 61 25 81 99 87 23 82 5 91 73 18 26 21 6 62 58 67 52 56 98 8 90 85 +Card 100: 32 79 87 19 25 91 62 82 76 5 | 26 66 13 28 18 97 3 65 49 30 21 2 42 9 33 14 68 98 72 96 59 99 77 7 34 +Card 101: 86 22 33 76 83 67 87 75 18 51 | 33 76 66 77 35 34 79 3 95 16 27 28 48 45 51 75 10 12 31 83 42 18 67 96 87 +Card 102: 8 58 41 62 81 47 52 71 59 98 | 21 91 68 71 58 14 90 93 79 38 98 41 13 72 66 11 26 3 62 84 83 65 17 47 36 +Card 103: 34 76 6 85 21 48 41 60 59 70 | 75 55 49 9 73 47 77 6 64 76 30 59 85 24 11 43 34 48 33 63 72 21 83 60 32 +Card 104: 57 85 27 66 58 37 80 70 78 74 | 57 70 54 30 22 46 78 80 3 74 50 35 92 58 5 95 7 59 83 90 66 60 1 98 12 +Card 105: 33 97 95 36 80 81 66 46 98 91 | 45 1 80 43 14 8 21 95 64 23 49 74 54 36 25 91 93 81 55 73 66 57 29 17 46 +Card 106: 51 19 86 18 63 41 44 9 7 21 | 12 18 20 94 59 51 42 9 1 55 22 3 48 91 21 56 74 61 93 34 44 17 37 97 13 +Card 107: 5 8 59 60 89 35 55 73 83 1 | 64 18 11 91 60 43 21 45 20 66 25 35 58 70 27 37 86 13 82 5 17 98 24 40 4 +Card 108: 26 76 43 52 20 87 1 58 88 34 | 85 69 29 16 48 31 13 65 91 52 37 55 64 7 88 74 96 40 61 33 45 73 84 23 14 +Card 109: 10 41 47 8 27 97 18 17 87 16 | 88 87 12 73 94 27 49 98 20 25 45 67 83 35 19 16 18 6 59 62 9 8 22 53 47 +Card 110: 42 70 11 15 56 19 99 4 93 88 | 25 79 92 67 58 66 52 77 7 19 75 72 61 1 4 68 42 27 53 44 22 56 83 70 88 +Card 111: 81 34 29 58 73 52 55 49 67 14 | 39 92 9 10 44 95 57 86 56 97 74 43 60 72 49 75 11 37 98 4 61 35 6 85 41 +Card 112: 23 51 12 85 16 60 98 67 79 5 | 13 59 49 96 15 30 33 75 61 81 86 55 60 83 93 14 82 19 71 68 39 69 32 2 31 +Card 113: 5 57 82 45 37 64 10 67 71 23 | 43 63 80 95 89 93 61 51 77 46 33 4 20 73 18 19 32 59 27 31 74 94 53 42 96 +Card 114: 35 61 73 13 29 27 33 98 10 43 | 9 11 25 87 45 63 24 17 1 96 14 86 39 7 99 67 48 26 51 40 76 59 47 52 31 +Card 115: 95 3 80 93 63 54 70 37 83 74 | 38 86 66 62 73 28 41 48 8 1 19 53 59 40 47 69 39 6 61 35 25 65 76 16 57 +Card 116: 14 17 25 45 9 38 78 48 58 51 | 95 33 43 77 10 64 72 21 60 98 26 70 96 68 44 85 97 75 28 16 22 80 7 46 34 +Card 117: 73 50 33 92 91 11 13 64 66 16 | 44 73 91 26 15 49 80 34 92 65 21 16 64 66 84 33 77 13 30 11 59 2 19 51 50 +Card 118: 97 77 94 41 44 9 22 2 53 48 | 9 76 46 88 78 41 22 94 92 4 58 59 53 15 77 48 20 42 97 2 44 75 69 32 36 +Card 119: 70 74 16 31 68 88 67 59 69 29 | 45 68 7 22 43 98 19 67 63 74 2 31 47 64 44 82 50 16 73 93 59 34 29 71 35 +Card 120: 3 36 60 7 45 18 19 34 55 72 | 9 34 72 40 19 32 16 61 2 63 33 92 93 81 88 7 60 84 18 36 44 45 5 3 55 +Card 121: 66 74 61 20 70 40 23 96 54 50 | 33 78 66 59 10 72 74 6 40 61 14 44 95 12 97 19 39 16 38 63 1 8 34 96 2 +Card 122: 82 8 40 84 5 42 46 60 21 57 | 14 95 68 94 93 19 41 6 39 25 47 37 12 66 81 50 38 15 71 96 99 13 97 87 53 +Card 123: 94 7 83 14 3 57 91 23 41 40 | 2 27 14 7 17 55 89 25 87 72 83 47 21 57 9 99 59 91 98 93 94 41 40 82 3 +Card 124: 65 67 23 63 35 97 78 51 18 58 | 52 45 39 35 80 67 21 40 29 64 18 3 38 78 51 23 28 63 8 32 93 97 58 65 61 +Card 125: 60 56 25 53 90 11 54 47 98 57 | 45 85 91 40 20 63 48 56 42 75 14 9 90 6 39 54 13 67 25 73 96 89 60 98 10 +Card 126: 88 35 60 29 39 27 43 71 50 97 | 69 27 82 48 98 28 14 90 65 81 97 57 45 21 75 94 96 17 54 31 5 22 2 24 26 +Card 127: 95 51 20 99 64 57 65 58 40 22 | 51 21 56 72 10 54 73 94 28 14 26 37 65 97 29 20 68 53 5 57 48 2 42 13 23 +Card 128: 65 74 76 90 4 36 44 92 68 63 | 19 85 6 44 9 92 37 36 64 76 96 43 79 98 86 39 49 93 71 26 63 99 56 70 16 +Card 129: 83 81 21 25 11 10 40 47 6 48 | 91 64 19 28 17 59 62 4 18 54 56 68 43 39 41 74 96 60 97 23 7 15 38 42 2 +Card 130: 73 5 17 4 26 85 6 2 75 88 | 55 99 4 73 59 83 2 33 69 93 5 70 51 35 23 91 53 68 45 95 88 15 98 37 96 +Card 131: 26 19 22 90 43 46 92 68 98 62 | 71 81 64 73 54 14 21 33 72 26 89 36 58 29 17 57 63 91 24 86 38 66 10 87 4 +Card 132: 66 61 98 42 92 11 89 4 12 56 | 7 1 49 57 64 28 94 88 45 5 87 69 62 52 35 40 97 53 21 71 19 83 9 60 77 +Card 133: 77 92 46 32 49 88 29 35 37 61 | 1 69 31 74 71 61 40 64 20 77 5 53 70 94 18 2 17 72 82 99 80 67 16 8 41 +Card 134: 74 23 3 71 41 13 79 68 64 97 | 78 66 54 75 26 14 36 18 87 3 82 59 4 83 29 6 34 76 32 53 11 57 27 39 42 +Card 135: 79 92 41 97 24 76 12 73 70 89 | 53 55 81 9 86 20 98 27 22 18 59 82 26 10 74 31 58 62 75 44 93 68 23 14 83 +Card 136: 27 20 15 61 60 79 52 69 18 38 | 23 10 73 55 87 14 17 12 47 80 49 83 35 22 97 84 11 44 78 85 90 45 41 58 2 +Card 137: 58 73 71 95 64 91 88 78 31 15 | 67 90 69 86 64 79 38 56 35 73 14 43 91 75 61 96 87 77 53 48 89 88 20 55 82 +Card 138: 48 46 63 72 26 91 53 86 27 17 | 52 49 34 13 99 69 1 92 95 80 8 6 74 56 75 37 29 61 93 18 66 97 2 32 60 +Card 139: 66 78 41 91 24 96 61 90 21 31 | 74 3 51 31 14 46 15 61 96 54 91 53 27 49 90 92 21 41 97 86 24 78 40 10 66 +Card 140: 21 70 50 26 82 4 46 51 22 45 | 99 79 98 58 14 71 88 59 51 45 6 44 18 90 41 24 27 4 12 78 21 26 95 49 20 +Card 141: 68 92 49 78 1 31 87 40 67 94 | 29 78 26 96 40 67 94 20 1 27 12 31 87 68 92 35 18 22 81 86 60 49 5 32 99 +Card 142: 64 6 96 90 88 27 77 41 72 13 | 41 14 82 46 28 86 84 63 76 75 32 90 13 6 30 77 44 88 27 78 60 79 64 96 70 +Card 143: 11 41 77 59 60 80 93 10 94 96 | 80 47 59 40 57 22 98 44 91 38 41 53 62 1 35 27 66 78 21 68 42 34 14 81 60 +Card 144: 30 83 21 64 54 33 95 44 61 74 | 34 9 8 14 47 62 82 28 84 68 2 50 66 59 26 64 41 57 70 23 46 88 79 44 95 +Card 145: 50 43 99 92 15 9 12 82 88 57 | 43 82 38 98 94 60 11 25 3 52 2 4 49 89 57 88 18 97 68 27 15 70 9 80 99 +Card 146: 93 98 19 66 94 17 92 15 69 3 | 62 57 65 69 92 60 44 54 79 42 45 36 19 37 33 81 83 98 94 90 77 3 85 56 87 +Card 147: 92 6 22 88 54 76 25 21 3 33 | 39 68 15 63 29 62 97 27 59 14 76 44 56 41 26 90 43 57 73 24 7 52 31 8 53 +Card 148: 95 69 83 87 55 43 25 73 39 76 | 39 94 99 77 32 58 53 68 1 72 50 26 38 41 5 37 52 35 67 83 2 69 19 73 93 +Card 149: 9 4 2 76 45 6 83 68 66 99 | 38 73 32 31 35 43 12 16 80 98 55 17 82 20 91 19 56 36 33 5 63 65 77 28 40 +Card 150: 89 58 46 72 43 40 73 50 85 91 | 96 28 57 24 20 79 42 21 6 47 48 2 41 23 38 54 45 69 26 56 65 99 74 78 4 +Card 151: 79 62 74 63 69 93 61 73 76 20 | 99 4 85 43 78 8 83 9 70 77 21 79 2 92 91 35 60 42 38 84 72 66 18 36 56 +Card 152: 58 16 29 44 57 30 3 43 62 86 | 93 22 87 38 20 64 26 21 51 63 14 15 61 89 40 96 83 74 10 66 31 69 92 19 18 +Card 153: 28 60 76 64 15 55 13 22 56 51 | 17 19 88 15 83 72 49 50 96 6 89 1 78 18 94 29 30 22 79 60 64 13 80 85 38 +Card 154: 60 25 91 36 96 75 39 55 30 68 | 97 95 10 68 48 67 55 72 26 77 23 63 35 13 52 64 30 61 15 99 14 46 41 60 39 +Card 155: 31 39 17 30 37 74 55 18 93 26 | 95 51 73 15 39 71 99 32 63 10 76 68 14 85 77 31 53 13 46 36 22 43 66 93 19 +Card 156: 69 54 99 23 74 95 3 51 6 79 | 6 3 13 10 23 99 92 30 16 69 91 33 51 2 54 95 79 60 49 62 26 74 15 50 70 +Card 157: 46 41 69 38 94 4 76 10 59 34 | 41 11 13 2 60 85 6 40 18 38 70 7 5 50 10 14 59 47 69 17 30 84 58 39 45 +Card 158: 81 63 68 7 56 88 31 29 30 45 | 19 84 8 7 56 63 70 30 33 24 97 34 48 68 38 49 29 50 18 45 81 95 39 96 1 +Card 159: 64 88 6 52 80 55 85 37 68 12 | 78 91 73 35 26 20 94 72 65 54 76 27 42 53 75 12 61 57 40 47 55 29 90 28 60 +Card 160: 66 97 98 82 28 80 84 45 87 32 | 1 57 59 76 83 49 89 45 16 26 34 47 55 6 54 92 32 96 72 28 97 87 67 56 29 +Card 161: 76 53 82 26 47 84 68 9 90 65 | 4 99 68 55 92 35 62 90 76 75 72 54 80 93 95 69 21 11 8 19 98 83 27 52 61 +Card 162: 35 43 90 21 87 48 44 72 45 96 | 26 58 19 17 12 11 88 53 7 39 28 2 51 1 24 83 4 71 90 57 80 87 81 82 41 +Card 163: 60 9 42 11 81 76 33 39 63 64 | 18 72 17 61 27 81 89 79 26 4 30 33 91 64 52 31 63 51 40 70 6 45 32 46 5 +Card 164: 48 77 13 10 23 93 42 72 16 89 | 8 90 89 17 73 52 60 54 4 12 95 62 67 69 55 66 56 65 59 21 22 43 26 97 31 +Card 165: 81 16 32 54 95 35 41 12 37 57 | 26 27 2 23 56 69 7 55 88 50 84 11 47 25 3 43 8 72 31 44 64 82 75 22 57 +Card 166: 10 89 46 37 68 42 55 6 92 35 | 8 43 75 73 94 89 63 20 51 54 87 98 74 78 47 31 34 18 32 60 38 50 69 3 41 +Card 167: 81 7 4 48 36 26 11 51 16 86 | 19 60 92 52 95 58 99 61 98 57 30 82 13 89 6 40 32 8 24 79 39 84 68 43 72 +Card 168: 52 34 59 72 63 57 36 3 30 11 | 57 1 30 93 96 52 26 11 14 49 48 36 72 59 92 3 63 91 46 60 34 94 22 19 9 +Card 169: 9 27 82 11 50 43 68 74 83 77 | 77 94 45 48 56 82 63 49 41 31 96 32 50 13 9 83 43 99 27 74 55 68 87 11 54 +Card 170: 67 66 11 9 63 75 25 19 13 60 | 87 93 29 85 60 27 33 75 61 99 19 66 74 53 24 82 11 25 7 47 77 67 9 63 13 +Card 171: 86 42 30 87 31 74 40 71 10 20 | 27 18 24 42 86 10 71 97 37 12 57 30 76 3 94 65 7 96 4 67 69 58 9 62 48 +Card 172: 46 19 33 70 75 88 3 56 8 21 | 13 88 56 70 8 12 41 87 19 49 42 62 78 26 34 11 35 52 85 6 3 7 58 37 46 +Card 173: 80 70 56 30 85 13 94 90 40 36 | 40 85 58 74 70 57 80 25 30 94 36 73 50 92 5 78 29 3 32 13 35 90 56 71 41 +Card 174: 77 50 5 80 69 65 27 17 86 3 | 32 37 25 67 56 86 50 19 41 45 64 1 38 70 63 66 47 78 92 23 54 65 95 8 87 +Card 175: 95 2 77 74 71 94 60 96 34 61 | 5 60 34 76 35 19 47 52 82 29 75 62 70 14 12 24 55 49 30 15 71 86 91 90 27 +Card 176: 8 99 42 72 81 60 55 51 40 6 | 81 8 6 26 62 22 3 73 68 85 48 42 93 15 20 99 87 97 72 67 60 36 46 55 78 +Card 177: 18 29 85 81 21 73 34 38 6 50 | 38 49 44 62 89 45 24 86 83 98 35 13 85 67 73 91 39 64 1 96 8 54 50 34 25 +Card 178: 69 57 27 80 68 95 19 30 71 63 | 68 19 80 34 56 30 3 27 94 85 99 69 78 14 62 10 63 44 59 8 51 95 9 57 71 +Card 179: 98 68 77 57 28 14 49 20 23 32 | 14 23 48 32 69 77 28 72 21 24 89 80 53 57 68 99 52 79 27 31 20 62 29 87 7 +Card 180: 84 48 77 15 73 99 80 56 81 25 | 58 27 3 55 28 37 65 70 57 44 89 15 81 90 42 48 54 39 26 25 6 88 93 12 95 +Card 181: 90 18 43 93 74 58 64 26 19 60 | 62 39 74 26 22 75 58 18 72 71 36 30 23 10 43 91 68 19 67 56 60 96 31 79 99 +Card 182: 42 64 24 74 23 67 35 57 9 92 | 56 62 33 65 57 9 43 10 20 32 61 39 99 97 24 21 75 52 86 68 55 74 84 88 47 +Card 183: 3 81 51 41 70 94 28 69 1 98 | 91 67 31 3 48 42 69 47 20 19 78 55 7 70 6 13 56 96 32 92 68 75 60 73 1 +Card 184: 68 41 58 60 79 44 36 35 93 88 | 14 97 20 65 12 82 17 63 48 10 37 72 11 98 58 81 56 87 99 83 59 61 80 8 52 +Card 185: 6 48 27 60 13 5 36 25 78 95 | 53 22 98 75 60 24 27 55 69 34 41 82 1 17 19 35 78 91 81 37 32 21 5 15 3 +Card 186: 22 31 70 64 72 11 48 63 94 95 | 43 10 45 61 99 86 51 37 81 34 24 60 31 67 30 74 55 42 52 19 73 82 96 32 83 +Card 187: 24 19 70 82 52 64 8 86 23 54 | 92 14 11 7 13 67 26 86 72 62 50 94 40 52 48 33 49 96 68 29 30 1 73 88 41 +Card 188: 32 86 69 20 23 64 67 78 46 61 | 81 94 62 47 72 48 16 83 93 64 8 21 37 41 51 13 50 58 92 11 1 98 74 39 76 +Card 189: 70 29 33 24 9 10 48 42 60 65 | 26 92 27 76 90 1 37 78 35 66 20 43 45 99 7 87 32 83 67 52 58 15 94 63 89 diff --git a/2023/_input/day_04_part_01_sample.txt b/2023/_input/day_04_part_01_sample.txt new file mode 100644 index 0000000..9bdb874 --- /dev/null +++ b/2023/_input/day_04_part_01_sample.txt @@ -0,0 +1,6 @@ +Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 +Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 +Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 +Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 +Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 +Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 diff --git a/2023/_input/day_04_part_02_sample.txt b/2023/_input/day_04_part_02_sample.txt new file mode 100644 index 0000000..9bdb874 --- /dev/null +++ b/2023/_input/day_04_part_02_sample.txt @@ -0,0 +1,6 @@ +Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 +Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 +Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 +Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 +Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 +Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 diff --git a/2023/_input/day_05.txt b/2023/_input/day_05.txt new file mode 100644 index 0000000..6808607 --- /dev/null +++ b/2023/_input/day_05.txt @@ -0,0 +1,197 @@ +seeds: 1972667147 405592018 1450194064 27782252 348350443 61862174 3911195009 181169206 626861593 138786487 2886966111 275299008 825403564 478003391 514585599 6102091 2526020300 15491453 3211013652 546191739 + +seed-to-soil map: +325190047 421798005 78544109 +4034765382 1473940091 137996533 +403734156 658668780 288666603 +2574766003 2624114227 17352982 +1931650757 2203381572 98211987 +4263596455 2843660329 31370841 +1614547845 2641467209 55121215 +3441604278 2032673361 170708211 +692400759 563703672 94965108 +2992851755 3824700930 114550818 +3957953582 2540115966 24844899 +0 500342114 59804107 +4172761915 2577017231 47096996 +2029862744 3548344768 52256082 +2620304610 2875031170 99567251 +3982798481 3939251748 51966901 +2325101894 1616388089 203150170 +3612312489 1611936624 4451465 +787365867 0 77461445 +1341614907 4162572181 132395115 +2542801978 3468402968 31964025 +223387052 947335383 59156225 +2297805420 1819538259 27296474 +2082118826 3991218649 171353532 +3374211778 3040047171 67392500 +2592118985 1341614907 28185625 +2253472358 2495782904 44333062 +4219858911 3780963386 43737544 +59804107 560146221 3557451 +3107402573 3600600850 64973479 +1669669060 3115086052 235712356 +2719871861 1369800532 104139559 +3172376052 2301593559 194189345 +2980795389 2564960865 12056366 +1905381416 3350798408 26269341 +63361558 261772511 160025494 +2824011420 3377067749 91335219 +3366565397 3107439671 7646381 +282543277 77461445 42646770 +3713793353 2696588424 147071905 +2528252064 1877585624 14549914 +3927202691 1846834733 30750891 +3665815578 3500366993 47977775 +1474010022 1892135538 140537823 +3616763954 3665574329 49051624 +2915346639 2974598421 65448750 +864827312 120108215 141664296 +3860865258 3714625953 66337433 + +soil-to-fertilizer map: +3835605444 4098164436 1662218 +682286299 0 63480553 +396476124 2072802434 285810175 +1644893571 655614677 162631098 +3625179075 4099826654 40627721 +1431211762 1859120625 213681809 +2853687843 4140454375 103601386 +1390165578 2358612609 41046184 +2405285827 3959200676 138963760 +900243562 1478767251 170015757 +3727732722 3084190064 107872722 +893948759 1084467374 6294803 +210337617 818245775 186138507 +1807524669 63480553 592134124 +825849944 1090762177 68098815 +3837267662 3192062786 457699634 +0 1648783008 210337617 +3665806796 2405285827 61925926 +1070259319 1158860992 319906259 +745766852 1004384282 80083092 +2957289229 4244055761 50911535 +2544249587 3649762420 309438256 +3008200764 2467211753 616978311 + +fertilizer-to-water map: +1169336944 3024036226 46676171 +1263157944 1445876546 148868263 +2080390054 2683279801 65621604 +949040795 1266013203 61140343 +2146011658 2793621589 110265098 +525510412 2618124082 65155719 +2977122301 3122211455 179751286 +3885825304 713560214 409141992 +1081017627 4124851079 88319317 +590666131 2039951828 38597255 +3596454634 1981772613 58179215 +2256276756 2078549083 315165891 +1639631621 1122702206 143310997 +2858399301 1327153546 118723000 +3654633849 3301962741 72039868 +749412925 3549292249 161128796 +1412026207 541983534 151190298 +1054901322 4268850991 26116305 +1829368778 3374002609 175289640 +1216013115 2570979253 47144829 +2806900243 3070712397 51499058 +1563216505 3760425124 76415116 +1782942618 3710421045 29953038 +629263386 2903886687 120149539 +2060339013 3740374083 20051041 +3156873587 3836840240 52553243 +2693038006 4010988842 113862237 +3726673717 2411827666 159151587 +2004658418 4213170396 55680595 +1812895656 525510412 16473122 +1010181138 2748901405 44720184 +910541721 693173832 20386382 +930928103 2393714974 18112692 +3209426830 1594744809 387027804 +2571442647 3889393483 121595359 + +water-to-light map: +555269773 2142838063 230952411 +2879443939 2889030006 80512763 +192641991 2686257040 106620606 +786222184 967781117 56662479 +3467110983 4162792381 132174915 +1955778230 0 505352386 +2461130616 1138855522 99691153 +1436321461 1403321335 440861327 +2625559119 1024443596 104825859 +1255310011 2792877646 96152360 +1877182788 697994377 78595442 +3732975066 3467110983 374194949 +842884663 2373790474 56459390 +299262597 2430249864 256007176 +3599285898 3841305932 133689168 +4107170015 3974995100 187797281 +0 505352386 192641991 +1090535351 1238546675 164774660 +2959956702 1129269455 9586067 +1351462371 1844182662 84859090 +2730384978 1929041752 149058961 +899344053 776589819 191191298 +2560821769 2078100713 64737350 + +light-to-temperature map: +4103141199 3912772142 105835099 +1994281004 833968687 112844016 +4208976298 1124841590 85990998 +3756966983 4018607241 111390720 +3868357703 1907239336 234783496 +2368591640 1210832588 293667703 +882426579 2320467318 1111854425 +3064998388 717457244 33489309 +3578938096 946812703 178028887 +2107125020 750946553 83022134 +3157760738 3432321743 421177358 +717457244 4129997961 164969335 +2190147154 2142022832 178444486 +3098487697 3853499101 59273041 +2662259343 1504500291 402739045 + +temperature-to-humidity map: +0 1820412620 129662806 +613828383 2855382935 55943394 +4004726464 3519717349 290240832 +769767991 99996214 1720416406 +3126066249 3043992795 475724554 +2490184397 2434241003 421141932 +129662806 1950075426 484165577 +689805485 0 79962506 +669771777 79962506 20033708 +3601790803 3809958181 402935661 +3043992795 4212893842 82073454 + +humidity-to-location map: +1305211417 3371927062 89487200 +947159122 0 358052295 +324330151 2021970861 8067408 +332397559 654359706 174171341 +506568900 3311893445 60033617 +11065691 828531047 45586147 +3556729147 369117986 26689998 +3583419145 395807984 258551722 +2356886904 984938593 400606547 +1394698617 874117194 110821399 +566602517 3946624826 164852367 +2998901322 2301963630 256425441 +0 358052295 11065691 +3331964991 3087129289 34908052 +1505520016 2106676497 195287133 +56651838 2819450976 267678313 +3366873043 3293025783 18867662 +3385740705 3122037341 170988442 +2281795782 2799796942 19654034 +2301449816 1966533773 55437088 +3992934054 3677118500 118543139 +3255326763 2030038269 76638228 +3849868384 3803559156 143065670 +2757493451 2558389071 241407871 +3841970867 3795661639 7897517 +1700807149 1385545140 580988633 +731454884 3461414262 215704238 diff --git a/2023/_input/day_06.txt b/2023/_input/day_06.txt new file mode 100644 index 0000000..c78a7c2 --- /dev/null +++ b/2023/_input/day_06.txt @@ -0,0 +1,2 @@ +Time: 42 89 91 89 +Distance: 308 1170 1291 1467 diff --git a/2023/_input/day_06_part_01_sample.txt b/2023/_input/day_06_part_01_sample.txt new file mode 100644 index 0000000..28f5ae9 --- /dev/null +++ b/2023/_input/day_06_part_01_sample.txt @@ -0,0 +1,2 @@ +Time: 7 15 30 +Distance: 9 40 200 diff --git a/2023/_input/day_06_part_02_sample.txt b/2023/_input/day_06_part_02_sample.txt new file mode 100644 index 0000000..28f5ae9 --- /dev/null +++ b/2023/_input/day_06_part_02_sample.txt @@ -0,0 +1,2 @@ +Time: 7 15 30 +Distance: 9 40 200 diff --git a/2023/_input/day_07.txt b/2023/_input/day_07.txt new file mode 100644 index 0000000..f1d181e --- /dev/null +++ b/2023/_input/day_07.txt @@ -0,0 +1,1000 @@ +6JA22 162 +TQJQ8 732 +7T77A 882 +6K66K 850 +QQAQQ 11 +7QQ7Q 321 +28966 921 +34433 801 +8QQ8Q 914 +K63K5 636 +47777 533 +K62Q9 773 +25J52 717 +A6AAA 631 +23222 720 +267Q4 9 +K8QK5 15 +QQA22 400 +563T8 50 +2J5J2 756 +77T83 647 +T9596 27 +53AJA 371 +6J666 916 +833TK 380 +5TK4J 506 +TK3KK 794 +JTJ55 54 +TTT4T 422 +9J3KK 491 +488K4 30 +87878 654 +QQKKK 894 +A4A3J 360 +55559 232 +33388 148 +JK599 632 +KK663 300 +JJ448 514 +AKATA 188 +6J537 885 +98888 65 +9TT3J 361 +668A9 227 +Q3285 257 +JT54J 208 +K8QA7 373 +77K39 681 +33T4J 281 +KA832 578 +6QQQ5 214 +52222 154 +6A4Q4 78 +39339 282 +2A82A 25 +5A66J 261 +5594J 4 +TTTT6 752 +9A3K5 760 +KA5AA 26 +K7464 447 +33676 605 +K7J7A 946 +5T5KQ 805 +654Q8 888 +35358 315 +A4A57 552 +669AA 485 +7A77Q 105 +Q3333 372 +57A9Q 665 +97655 367 +24222 698 +Q6KT7 820 +99KKK 83 +T33JK 389 +9KKQ2 602 +TT9JQ 278 +JT5KJ 638 +88JJ7 588 +4664J 205 +36T95 193 +7272K 329 +JTTTK 328 +7K79T 653 +84948 192 +4444K 258 +578QA 337 +9J999 980 +JT4A2 950 +QJT22 598 +TTTTJ 384 +QAKJK 310 +58955 547 +Q2497 264 +55444 746 +793K4 256 +QKQ5Q 802 +ATTTT 878 +Q92K5 469 +88388 969 +T99TQ 456 +44384 560 +3773J 545 +82293 224 +8558J 879 +TT98T 342 +AJKJ4 490 +T9996 238 +TKQQQ 810 +J5Q55 229 +Q564Q 932 +4K6KJ 349 +3J939 909 +28K2K 563 +8787K 262 +JTK34 365 +A3832 165 +2T3A8 562 +229Q5 761 +9TTK9 58 +KK55T 536 +K6JJJ 216 +44466 940 +67777 897 +QQ9Q9 963 +48AJT 507 +4TT4T 160 +82936 584 +99TTJ 597 +698QA 573 +398K5 618 +56J54 438 +45584 124 +83657 892 +J2782 574 +68862 270 +5Q5A7 132 +TKK8K 288 +6AT55 689 +22J62 61 +QJQ55 884 +2J445 713 +TJ952 913 +3QAJ4 347 +J73JK 122 +555TT 64 +AQ829 830 +5384A 924 +44446 146 +Q7JTT 248 +73K3K 22 +22572 335 +55JJJ 225 +K56KK 587 +9Q8TT 745 +833QQ 420 +63828 489 +J6368 199 +45464 31 +72724 550 +66Q6Q 543 +66334 191 +55Q54 965 +KK7A7 73 +TJQ8A 806 +33Q23 283 +928J3 804 +4J4Q4 470 +4KKKK 865 +Q6K9K 266 +7QJ2Q 237 +7AT65 723 +9TAJ2 327 +73344 207 +44TKK 179 +86T68 203 +TTT28 519 +4J684 391 +97779 169 +9229K 593 +KKK77 280 +J2224 926 +A5J5A 472 +Q673J 697 +K88KK 823 +7K63J 198 +4A65T 115 +J2424 302 +55A55 424 +TTTQ6 142 +48888 97 +KK66T 672 +7J7T7 809 +4A444 153 +3A33A 494 +A7K25 790 +88A9A 880 +KQ549 473 +6J2Q7 803 +QQK2J 345 +9KKJT 152 +T4KJT 917 +23593 608 +33383 798 +44Q22 841 +AQQQT 709 +7747Q 1 +4333A 959 +4666Q 163 +AA5A5 920 +7A77A 576 +55J4K 357 +6KKQT 354 +A6866 837 +JK6KT 341 +QQQQ8 778 +966Q9 710 +59995 101 +7KKJ2 79 +4J58Q 680 +K55KK 967 +A3AAT 352 +Q435J 20 +453JJ 683 +9T4QK 669 +595J9 307 +KK35K 673 +98563 113 +QJ943 181 +88498 340 +AKAAA 931 +Q58Q5 183 +QJAKT 145 +3K8TA 952 +JKA2J 173 +JA734 443 +68226 291 +QT7J5 777 +AAT8Q 377 +T9T3T 991 +44T75 642 +79772 96 +2Q5QQ 881 +8TTTT 398 +22K2J 45 +46TQQ 497 +QQ522 7 +6JA99 35 +TK65T 559 +65885 532 +76868 156 +74J4J 274 +Q85JQ 378 +596K7 566 +AJ522 286 +5K455 362 +483JJ 170 +8JQ78 866 +QQ3Q3 392 +52292 250 +77977 678 +55AA3 604 +33663 571 +9KKKT 759 +K8243 923 +363J7 603 +3333K 332 +94333 660 +555T5 98 +5772A 206 +TTTQT 103 +Q3KJ2 29 +99669 674 +6625J 338 +Q4444 904 +7K6Q8 40 +A73JA 646 +77545 231 +QTJ87 956 +Q944Q 872 +K8892 393 +5AQ6T 503 +7K7K7 322 +74297 851 +4QKJ6 508 +Q665Q 114 +8Q93T 825 +AAA8T 799 +6598K 910 +78A27 766 +JAAJA 993 +88788 763 +Q7925 117 +A22A2 74 +98T95 716 +2QQQ3 75 +A3479 107 +KAKAK 13 +8863K 271 +J668A 919 +342TA 62 +6295A 226 +T398T 558 +54696 699 +J444T 614 +34442 41 +86488 815 +88T8T 755 +78Q76 548 +A6666 725 +422TK 768 +JJTTK 998 +99393 730 +967JQ 771 +J9A94 500 +KKQQ3 213 +6TJ6K 899 +K88KJ 346 +52J22 835 +J8827 651 +5A588 67 +333A3 737 +J2J22 331 +4Q3J6 953 +7K443 601 +A2868 355 +TQ2K3 492 +765Q2 521 +AJ7AA 121 +5J5J5 172 +48A44 627 +57TAA 891 +58555 912 +46436 195 +K9AT3 859 +78338 84 +54J75 186 +TTTTK 740 +75777 461 +25K5T 401 +94994 272 +5679Q 129 +64666 375 +327A9 243 +7Q7QT 656 +JAAAK 691 +4AA4A 877 +T5TTK 682 +599QJ 395 +3835K 502 +46667 906 +44443 408 +5J558 430 +5QJ44 670 +3K693 585 +33393 277 +QQ992 849 +4T4KT 368 +99996 323 +2QTT9 542 +K253A 971 +7799J 482 +59QQ7 939 +53633 405 +4Q2Q2 677 +9KQKK 975 +78877 428 +9KAJ6 987 +JJ8JJ 951 +46A6A 979 +8K58J 915 +433J4 304 +33QTQ 657 +8KKKK 167 +J5J35 439 +979J9 827 +JK47Q 968 +AAAJA 936 +9747K 46 +4449J 100 +T7AJ6 204 +5556Q 517 +666T6 870 +38QJA 57 +277T7 764 +4J834 964 +22626 128 +2334T 664 +449Q4 454 +6T6T6 590 +TATAT 233 +37555 609 +ATK69 249 +K33JK 784 +J8JJ8 19 +8T888 202 +555AA 111 +T3339 86 +5Q963 816 +7AK2K 650 +J9J27 509 +JJQQQ 436 +59958 705 +KKJAK 833 +33K63 623 +47764 690 +58855 501 +4754K 177 +T5K5J 451 +554Q4 762 +99J29 595 +6668J 621 +7KK7J 795 +46J56 465 +28228 985 +33J3J 343 +J28J6 76 +292T2 774 +K99K9 459 +2KTT5 147 +AJQ3K 836 +87JT7 744 +97KJ6 524 +82T2J 425 +KJJ43 200 +55KJ5 130 +Q7985 718 +777T7 846 +QT46J 864 +TAJ6A 520 +A666A 493 +75555 477 +37878 930 +TA882 306 +Q93Q9 793 +9JT99 954 +993T9 643 +28AK8 235 +KJ69T 228 +96869 102 +24884 403 +769AJ 867 +6J434 47 +6TTQ9 990 +8T7TT 748 +795AJ 753 +84JKA 629 +8J428 855 +JJ2J9 997 +TJ524 818 +26662 686 +567AA 219 +97997 275 +QQQ66 853 +JQ77Q 692 +66TTT 984 +95353 16 +8QQ7J 955 +22272 814 +8A868 616 +6Q2QQ 983 +KQKQQ 770 +JJ66J 69 +7KQJQ 505 +J9J97 23 +85ATA 986 +A64KA 89 +96669 684 +9Q538 414 +6AT62 427 +JJ956 415 +T24QQ 409 +3277A 28 +JA5TK 125 +2586Q 157 +K93QA 311 +AA3TJ 960 +34434 640 +8J448 977 +55333 267 +T3TT3 667 +55856 610 +J375Q 873 +344JQ 18 +38J2K 36 +QJ225 523 +656A6 313 +33J33 875 +2JQ4A 480 +AA4TA 3 +TT3KJ 668 +59996 933 +A5AQK 104 +AQ382 10 +56A64 487 +QQJA5 854 +666K6 402 +474AA 546 +QAQAQ 452 +ATQ32 171 +7A777 861 +Q4A9K 324 +39Q26 247 +29229 309 +2QQ2Q 450 +47424 394 +2A2JA 55 +7TAA9 687 +9JTK4 661 +KKK66 786 +99989 839 +59JK6 675 +3QTTT 455 +48TT6 780 +542K6 397 +79A56 471 +QQQQ3 903 +J2296 817 +AQ52K 194 +65A9K 842 +9998J 246 +2835K 662 +74444 437 +2754Q 685 +98J67 907 +8T8TT 134 +343Q7 406 +999T9 511 +59JQQ 240 +27KTT 973 +AAKA9 577 +3A223 840 +QK787 655 +K5977 754 +JATQ7 468 +6TT6A 464 +99JJ9 564 +2K242 320 +66766 223 +Q858Q 442 +55T22 658 +77QQ7 379 +44JJ5 648 +TK498 48 +9J4J2 580 +95945 957 +A64J8 385 +86666 242 +8AA88 150 +67877 77 +AA999 144 +J32J5 498 +777TT 938 +KJKKK 929 +72689 353 +684TA 970 +JK8JK 92 +56656 483 +TTTT3 363 +8T88K 868 +AKAAK 382 +42A7A 80 +44349 474 +37A7A 180 +2QAA2 976 +Q68K6 704 +3373J 141 +77666 279 +9TTTK 49 +36QT5 724 +5T6JT 751 +T257A 556 +TA44J 59 +AAATA 293 +KKJ2K 410 +7J64Q 871 +2AQQ4 269 +8777K 708 +7K42T 594 +22J22 775 +899K8 918 +53355 639 +44429 326 +7K777 944 +573J7 221 +T7A2Q 149 +92242 579 +5K7K6 63 +386QK 722 +JKQQQ 516 +KA6A7 8 +A9T28 633 +T4Q67 220 +KK233 962 +AJ73J 831 +KJ344 876 +22277 635 +99833 215 +46JT7 42 +QQQT3 88 +88445 947 +J7T55 935 +29J22 44 +5777J 178 +999TT 230 +J82TT 488 +K3K9T 336 +4T474 285 +J5T54 53 +KK7JK 433 +K3374 908 +55QTQ 95 +665J5 453 +35TQA 6 +J2QQJ 630 +6JK36 386 +743J5 292 +3Q9QQ 495 +4JJ44 344 +88285 534 +766J4 553 +QJ846 700 +AAAA8 263 +5655A 351 +K67T8 197 +3TA9A 460 +8T9T8 481 +TAJA9 526 +8822J 742 +4Q44K 625 +K6663 110 +AAA7A 32 +432KK 726 +KK288 540 +67677 527 +33882 693 +QQQ35 316 +J4Q4J 863 +6639J 898 +248QK 847 +AA99J 758 +T7QTT 383 +AA442 572 +JJJJJ 900 +3353T 297 +Q68A3 479 +222KK 339 +7J878 586 +9292J 38 +79QQQ 883 +87J73 276 +7488K 175 +5J59A 421 +67222 314 +9K9KJ 449 +JK447 528 +KKKAK 303 +A84A4 222 +K6KJA 273 +8T5QA 848 +33352 591 +AT833 617 +2AAAA 305 +3Q74K 555 +24K44 739 +3J342 925 +QJK65 356 +72333 807 +J2AAA 750 +K7779 554 +33J45 886 +79J96 895 +9T6Q3 413 +K3A4J 94 +4T525 974 +63333 418 +55KK5 829 +J4896 531 +J8T8J 118 +35435 741 +722Q3 513 +A3QAQ 72 +3J8A6 958 +T9QQ2 376 +QA7AQ 287 +9A555 348 +T559T 695 +4T774 999 +22253 68 +38838 772 +462QJ 112 +969K9 981 +Q55Q5 992 +J5555 14 +Q565Q 995 +755J5 510 +KJKK9 189 +J6T42 529 +2748K 241 +769T4 120 +7K5TJ 845 +Q2272 515 +KTKKK 60 +49J24 71 +TT2J2 844 +858J8 781 +42643 364 +TJ44J 448 +QQQQ9 504 +QQJQ6 37 +J7974 796 +T549Q 434 +398J7 137 +K6K55 161 +TKTQQ 476 +A9898 703 +6J9K3 808 +KK29J 201 +QQ9J9 736 +KKJKJ 712 +66KJK 486 +73777 82 +824T6 496 +78847 404 +JQQ22 441 +QQQQ4 694 +555Q8 776 +J7J7T 407 +43Q6K 91 +6T6K6 196 +J66J6 308 +54844 334 +K9T44 457 +K444K 135 +38343 860 +34323 735 +KKK5J 734 +4339J 541 +JJQJ4 707 +28222 972 +KJA53 676 +KKKK6 158 +8Q558 783 +T2TT2 34 +74J67 209 +5KKKK 945 +9TTTT 412 +66363 70 +9399J 858 +7J3TQ 589 +7K468 116 +3TA6Q 133 +42Q6T 396 +65886 557 +449J9 728 +8KT2J 446 +J8888 822 +2T266 927 +8955K 138 +QQQ5Q 943 +92272 318 +AA77J 1000 +8TT66 569 +T8AJ3 606 +AT98K 628 +34Q92 641 +75QK5 499 +8TJ93 155 +KK7K5 176 +JA859 21 +9K523 727 +K44JK 582 +2Q8AQ 942 +J5565 611 +888K8 265 +98982 747 +K6866 982 +883J3 538 +6K6J6 767 +7423J 2 +QTQQT 252 +4T4JT 812 +5TT28 599 +69766 440 +QJ777 136 +Q48J3 260 +QQQJQ 253 +7T994 989 +A4Q4T 93 +88K78 645 +JA2QJ 797 +55TJ3 151 +JKQ96 696 +99299 312 +7777J 126 +7437J 769 +2Q382 620 +2T5KK 298 +Q4JJ5 333 +8JJ88 874 +QK33T 52 +KTKTT 634 +A7298 811 +7J766 652 +JAA5A 966 +85385 702 +5JK35 369 +223J2 432 +AAA33 56 +3AA35 824 +29222 423 +6AA6A 212 +29228 551 +A22TT 996 +J423Q 289 +99J94 843 +A364K 592 +A4AAA 787 +96TA2 706 +Q3Q4Q 994 +9334A 887 +45555 857 +AJ6AA 893 +4J444 174 +9JQ9J 731 +9J964 143 +K44KK 429 +29JA8 159 +53523 359 +59Q23 522 +A3663 24 +53AAA 12 +T7982 5 +8Q888 140 +A36J9 928 +83668 961 +28J2J 435 +25Q42 659 +ATK7Q 185 +26855 462 +J4624 567 +97994 644 +57989 109 +KK883 417 +JT676 721 +T2222 51 +34TTA 679 +JTTJT 370 +67267 463 +A444Q 325 +J77TT 813 +24555 245 +9TKJ8 612 +48464 792 +35K33 366 +2A333 626 +64A57 583 +K3QJ6 43 +24K86 244 +28744 164 +589Q4 688 +A8888 896 +6J626 666 +65666 182 +J3QJ5 387 +QJK99 467 +59455 889 +3K555 330 +35K35 832 +A3KAA 106 +Q6JQ6 81 +KK2K2 838 +79999 828 +24A64 561 +47JK9 785 +77772 284 +9T7T6 765 +573Q5 934 +4Q479 431 +JJKAT 184 +799JA 596 +5QK5Q 411 +TJ522 911 +9A95A 87 +5Q82Q 988 +KTJJJ 294 +566J3 729 +7JA65 218 +99J59 901 +49K5T 301 +5QQQ5 478 +55552 39 +99AAA 210 +5665Q 649 +2J822 530 +QTTTQ 622 +998J8 374 +44222 600 +77J7J 259 +63888 782 +93763 458 +222TT 123 +22T44 821 +37KQQ 714 +J688A 127 +244QQ 581 +33K3K 852 +TJTJQ 738 +TT2TQ 399 +QTQ54 549 +7T543 131 +999A9 800 +T435T 788 +T3JQK 637 +T725Q 358 +59955 862 +2J227 905 +2T2TQ 99 +9K7T5 119 +987J7 296 +77J55 779 +KAJK8 711 +8TJA7 168 +666Q2 535 +9J2T8 255 +8J6J5 187 +9JK44 743 +55888 749 +8KQJ4 733 +T3399 570 +TJT97 236 +82597 890 +TAAA7 715 +AA797 268 +27AA8 17 +TTJAJ 317 +984JA 624 +56JA5 701 +68668 819 +75575 419 +66626 613 +4Q962 671 +9Q898 484 +95994 757 +T3T33 615 +3Q397 619 +89747 381 +6429A 922 +J6996 254 +Q3Q43 568 +48864 416 +678QA 388 +TT5TT 239 +69K6K 85 +7667A 512 +QJ9QQ 949 +AJA5J 789 +8JAJA 663 +88AAK 575 +3Q77J 295 +6T4Q6 856 +3856Q 539 +47747 466 +Q5T75 444 +39A69 90 +59956 299 +J3JQ2 869 +T65JK 941 +74488 166 +QAKTK 139 +88668 251 +KTTKK 190 +88989 290 +KKKK9 475 +Q7JQ6 607 +8K6T4 33 +37968 834 +48884 426 +T929T 902 +2KT54 217 +86439 66 +344J4 518 +46664 350 +J5392 537 +74TT4 445 +2J247 319 +K66AT 565 +39327 390 +Q6656 525 +75757 544 +88688 108 +486A6 978 +72KQ3 826 +277QQ 234 +KK399 948 +QJ828 791 +97697 211 +KKK6J 719 +AA5TT 937 diff --git a/2023/_input/day_07_part_01_sample.txt b/2023/_input/day_07_part_01_sample.txt new file mode 100644 index 0000000..e3500c3 --- /dev/null +++ b/2023/_input/day_07_part_01_sample.txt @@ -0,0 +1,5 @@ +32T3K 765 +T55J5 684 +KK677 28 +KTJJT 220 +QQQJA 483 diff --git a/2023/_input/day_08.txt b/2023/_input/day_08.txt new file mode 100644 index 0000000..050a8f4 --- /dev/null +++ b/2023/_input/day_08.txt @@ -0,0 +1,704 @@ +LRRRLRRRLRRLRLRRLRLRRLRRLRLLRRRLRLRLRRRLRRRLRLRLRLLRRLLRRLRRRLLRLRRRLRLRLRRRLLRLRRLRRRLRLRRRLLRLRRLRRRLRRLRRLRLRRLRRRLRLRRRLRRLLRRLRRLRLRRRLRRLRRRLRRRLRLRRLRLRRRLRLRRLRRLRRRLRRRLRRRLLRRLRRRLRLRLRLRRRLRLRLRRLRRRLRRRLRRLRRLLRLRRLLRLRRLRRLLRLLRRRLLRRLLRRLRRLRLRLRRRLLRRLRRRR + +DBQ = (RTP, NBX) +NFX = (PXX, PLG) +VBK = (BRV, DKG) +BRS = (HLR, VBX) +DDK = (SPR, TCR) +FTS = (LJB, MDJ) +BLH = (DFM, GGG) +PCC = (GQR, RHD) +QKN = (VVR, GBL) +KHN = (FNB, LLT) +HTD = (NPJ, BTL) +FPL = (BRX, XQD) +RCJ = (QKN, XPD) +XRN = (RMQ, LQB) +HGM = (VPV, SVR) +RFG = (TLM, KPH) +SSG = (QGC, KJV) +LPA = (QQN, GNF) +SVN = (VLM, BDX) +VPF = (TTR, RNQ) +VNK = (DSX, MCZ) +KMS = (XNN, MTB) +RLS = (NHX, CRT) +VRS = (VBX, HLR) +TVK = (MKG, NKB) +CKH = (DFF, XPV) +KBS = (LJC, PRS) +JMT = (FPT, DLX) +LRV = (QCD, RLF) +TMM = (VPF, GKD) +HKH = (PRS, LJC) +GSM = (SVH, KRP) +SLG = (PTL, SNJ) +GVS = (DSN, CKH) +QGC = (HKS, DFP) +RFT = (VVQ, GMF) +FDF = (JKV, JKV) +MRL = (PKS, TKS) +HBN = (BDX, VLM) +CFB = (PPV, QVS) +TFJ = (KGN, JND) +HLB = (PFV, JXR) +RFJ = (SKL, QCN) +PQH = (KGN, JND) +HGR = (FKL, XHR) +CTB = (HNQ, HNQ) +XMN = (CJV, LKQ) +JVX = (FSS, CRC) +SFH = (MXD, RHN) +BRK = (QPL, DJB) +HBX = (DSN, CKH) +RFL = (VXB, FNF) +GXP = (LHR, SMV) +CHK = (NLQ, VCR) +QPG = (HHL, KHB) +VBC = (NFV, FST) +QJF = (JXL, JJC) +XKQ = (PCS, BSH) +SKS = (SNN, QSN) +GJJ = (VVG, XPR) +DJP = (SJM, DNR) +DQF = (MHG, BKZ) +MSB = (BRX, XQD) +PQR = (TLL, RVS) +XGB = (RMT, HGF) +HBD = (PFD, FDN) +NSN = (RFJ, NJT) +SNJ = (MVG, DBQ) +NMV = (SKG, TDJ) +PTN = (TNR, SSG) +SBG = (CVH, LMJ) +RDT = (SVQ, JTT) +MRC = (BKF, QMJ) +JKV = (CTB, CTB) +CTX = (QHL, BDV) +SQM = (DNR, SJM) +MVG = (RTP, NBX) +KKJ = (TQP, PST) +QKX = (BRD, SFT) +VFV = (NTL, VMQ) +LXK = (SSL, MFR) +HDH = (VPS, MJH) +RTP = (CGJ, XJC) +BXQ = (FLN, FLN) +GKD = (TTR, RNQ) +GPP = (SNN, QSN) +GDQ = (JLS, TND) +LTF = (GXP, TVB) +GVB = (LSV, FRL) +JCF = (HGR, GMX) +VCR = (JTR, MCM) +XJC = (DGP, XML) +XKA = (SFC, CHQ) +LJL = (VPX, PMS) +CPH = (PCQ, QKX) +VPV = (TFP, NJN) +TDJ = (PRV, DBK) +JGQ = (TPX, NMV) +LJS = (GDQ, QPV) +VHN = (CBJ, PFQ) +JHT = (XHM, NRK) +ZZZ = (HJS, LRV) +KJV = (HKS, DFP) +HNT = (XXT, KJT) +RHD = (KQH, TMD) +JKG = (HXJ, MGF) +SPL = (TTB, STB) +MBD = (CQK, NHH) +TPX = (TDJ, SKG) +HRC = (LBB, JLR) +QHN = (JHT, THC) +SPM = (DDG, MBK) +MFG = (JBD, GSM) +MHR = (PTN, HVB) +RLF = (GMG, TDQ) +XBQ = (KKN, QTN) +GLB = (DHS, SXC) +PRV = (PGC, NSK) +SJD = (BXQ, GHF) +THC = (XHM, NRK) +GBL = (GGR, HTK) +MDK = (JXX, DBD) +NJT = (QCN, SKL) +LLG = (KBL, LXK) +RVS = (DDB, QRV) +LHR = (LPL, TGJ) +TBD = (NNB, CQH) +DSN = (DFF, XPV) +QQN = (HRV, PTT) +XPP = (GSJ, RDT) +CBJ = (JQL, RBX) +RBX = (CNV, NKQ) +DDG = (NBS, KTV) +XNN = (TMC, GCG) +DSX = (CGR, SGM) +DFB = (RCJ, KJK) +XTG = (RFG, XSD) +PKQ = (DBD, JXX) +XPD = (GBL, VVR) +FFC = (JLR, LBB) +GMG = (KFH, PTP) +QHJ = (SHM, FKM) +MXD = (XGB, LTX) +SGM = (FTS, GXX) +LTX = (RMT, HGF) +RNQ = (SPL, DKH) +NHF = (VXC, HRS) +KFR = (JXR, PFV) +NRP = (XNN, MTB) +VDR = (LDL, JCP) +FSS = (KXJ, GKL) +QVS = (MKN, BLH) +SNN = (SBM, PNH) +VXB = (LLG, BHP) +BPK = (QVS, PPV) +SMV = (TGJ, LPL) +CXF = (XKV, PVR) +PGC = (NBJ, KCK) +VLG = (DDG, MBK) +FKL = (HFC, XPP) +KFC = (XNM, CNR) +FCC = (BRK, GLT) +HQC = (JKV, JHQ) +QQV = (CPG, HQD) +VVG = (XGJ, XGJ) +SVK = (HVH, HNJ) +XQT = (LQX, HNT) +JDB = (PXM, THR) +JHR = (XRF, DHN) +HRS = (TFJ, PQH) +SVQ = (XHX, QNG) +KGN = (FCV, SBH) +GJX = (MFG, LMS) +NBJ = (GVB, RMS) +VQJ = (JPB, PDF) +TKX = (JMT, LGM) +FLL = (GTX, HKP) +MFT = (FKM, SHM) +JCP = (SSP, VMD) +LPC = (KCD, JDB) +XHR = (XPP, HFC) +FKM = (DLL, XBQ) +MGF = (NFX, MQS) +JXJ = (MMP, CBT) +DFP = (TGM, RHV) +SSM = (NTC, TMT) +DLX = (PXF, SBG) +NNB = (TNT, MMF) +QNG = (RHP, QBT) +FLR = (CJK, QRL) +RCP = (KKG, NTD) +GJV = (SLG, DGN) +FDN = (TBR, QDT) +JTG = (RFT, PRC) +LGM = (DLX, FPT) +QDT = (CXV, SGD) +HKP = (BLB, PCL) +GXB = (MNH, GXT) +QDS = (LTF, FDX) +LMJ = (GJV, HVV) +TDQ = (PTP, KFH) +SGD = (HTT, PNR) +XPV = (BPM, CPH) +PTP = (MKL, KSP) +DKG = (DKK, KNQ) +QCN = (XTD, GQM) +LSV = (GDK, VVD) +MLG = (RLS, RKG) +GMX = (FKL, XHR) +QSN = (PNH, SBM) +CHQ = (KSB, CXF) +RHN = (LTX, XGB) +LVX = (JSF, MLT) +XHM = (FLR, QVK) +NCJ = (CPG, HQD) +MQV = (HBD, LDK) +VVD = (QBV, FKF) +QCD = (GMG, TDQ) +GTH = (DLJ, DQF) +KFH = (KSP, MKL) +NFC = (PKQ, MDK) +NCD = (FNB, LLT) +MKG = (HNS, DDK) +BTV = (KBS, HKH) +QGL = (QTF, CVS) +DDB = (DVF, HXV) +PXF = (CVH, LMJ) +NFV = (XMN, BQR) +DGN = (SNJ, PTL) +HHL = (PHC, QQJ) +XPR = (XGJ, LVQ) +PCQ = (BRD, SFT) +MMT = (RDS, SRS) +DMR = (GJM, BQS) +QPL = (XNQ, CMN) +PDF = (JBH, CTX) +CVR = (STX, MBQ) +LPL = (SFL, PHQ) +FXX = (PNX, PQL) +KLS = (NHG, CHF) +NHX = (TMN, JLJ) +NND = (QHN, XBR) +JTT = (QNG, XHX) +LML = (FDX, LTF) +PCS = (LKV, LXX) +SRV = (KCD, JDB) +NSK = (NBJ, KCK) +MRF = (NKP, JKG) +VPX = (NSN, SMB) +GFT = (FPL, MSB) +DFM = (XKQ, PPQ) +PPQ = (PCS, BSH) +JJC = (JHR, RQG) +JBH = (BDV, QHL) +KNQ = (KNP, MRL) +TBS = (NTD, KKG) +JXL = (RQG, JHR) +GKL = (MJC, QBM) +BQR = (LKQ, CJV) +DGP = (VNT, JRB) +DKR = (VBJ, GVF) +JXN = (BXD, XLT) +TVG = (HGR, GMX) +XSD = (TLM, KPH) +RMT = (GXB, DPT) +FRL = (VVD, GDK) +PNX = (NCD, KHN) +VGK = (CNR, XNM) +MQB = (KSF, LJS) +KDC = (MSB, FPL) +GCD = (CXS, PCC) +XML = (VNT, JRB) +TBL = (GCV, HDH) +BRV = (DKK, KNQ) +JKS = (XXB, ZZZ) +TMC = (MDQ, QJF) +TNT = (NQJ, SSM) +FLF = (XSD, RFG) +JRB = (FDF, HQC) +PTL = (DBQ, MVG) +BGQ = (KFR, HLB) +XTD = (VRS, BRS) +QXX = (SJD, CSH) +FRX = (BQS, GJM) +PQL = (NCD, KHN) +LKV = (PNK, DKR) +HQS = (VVG, XPR) +VPQ = (NTL, VMQ) +THR = (CBV, CVR) +FST = (BQR, XMN) +DMD = (CVS, QTF) +HXV = (RCP, TBS) +STM = (RFX, BFR) +JTR = (JTL, JXN) +FLG = (PFQ, CBJ) +CKM = (KFB, HTP) +NCT = (KJK, RCJ) +DKH = (STB, TTB) +QGA = (CGR, SGM) +XNQ = (HJM, MLG) +RGF = (LFN, FGC) +QBV = (VPJ, RMN) +QKJ = (KFC, VGK) +CSB = (FDL, FDL) +HFK = (DHS, SXC) +SVP = (NPJ, BTL) +GGR = (XTG, FLF) +XKV = (NDH, JXJ) +BMR = (FRX, DMR) +VVQ = (BFN, TVK) +HJM = (RKG, RLS) +RLK = (PDF, JPB) +DCX = (HNQ, BRZ) +TBG = (RTL, SML) +RMS = (FRL, LSV) +FCV = (STM, HTC) +SPR = (TBL, JGG) +BHP = (LXK, KBL) +NPJ = (XLV, PQR) +NKF = (TBD, DKP) +PDK = (JTK, JTK) +PFQ = (RBX, JQL) +LBB = (SVP, HTD) +GTX = (BLB, PCL) +SBH = (HTC, STM) +BFR = (RJN, BTN) +TCR = (TBL, JGG) +MQS = (PXX, PLG) +FRG = (XXB, XXB) +STX = (XQL, HGM) +HNJ = (HBN, SVN) +SSL = (RDL, NST) +HJS = (QCD, RLF) +KBL = (SSL, MFR) +CXS = (RHD, GQR) +DFD = (NFP, FCC) +VBJ = (HFK, GLB) +DKP = (NNB, CQH) +QSK = (TKX, CQT) +BNV = (JTK, GTH) +NBH = (LVX, GQB) +QBM = (VNC, VPK) +DBD = (HHR, RVQ) +DFF = (BPM, CPH) +LQX = (KJT, XXT) +FGC = (QKQ, QSK) +PXM = (CBV, CVR) +JHQ = (CTB, DCX) +NJN = (BGQ, FBP) +TLL = (DDB, QRV) +XSN = (THS, KJQ) +KXJ = (QBM, MJC) +GSC = (TQG, QXX) +QJP = (PQL, PNX) +PHH = (MXD, RHN) +SSC = (NQX, FCH) +XDF = (NLQ, VCR) +BRD = (MQV, FRQ) +AAA = (LRV, HJS) +PTT = (FFC, HRC) +VKF = (BFG, TGQ) +HHA = (FLG, VHN) +CNR = (TQX, VDV) +TGM = (FLL, TNV) +GLT = (DJB, QPL) +MBK = (NBS, KTV) +JPB = (JBH, CTX) +RHP = (SQM, DJP) +CHF = (CLQ, JGQ) +FTL = (PRC, RFT) +SKL = (XTD, GQM) +RBN = (SPM, VLG) +HGF = (GXB, DPT) +BQS = (NSP, BTV) +XHX = (RHP, QBT) +CGR = (GXX, FTS) +BLB = (QJP, FXX) +CRT = (JLJ, TMN) +PLG = (SLC, PDD) +HRV = (FFC, HRC) +MCM = (JXN, JTL) +JGH = (MFG, LMS) +NSP = (KBS, HKH) +MFR = (NST, RDL) +GMF = (TVK, BFN) +SML = (LJL, XFP) +MPL = (RDS, SRS) +QHP = (SPM, VLG) +FCH = (GDC, XRN) +NRQ = (FTL, JTG) +HMB = (CRC, FSS) +KPH = (BNH, SLK) +SRS = (MQB, GCN) +RQM = (TGQ, BFG) +FLN = (CSB, CSB) +BSH = (LKV, LXX) +CRC = (KXJ, GKL) +CJV = (XDF, CHK) +CGJ = (DGP, XML) +SFL = (GJJ, HQS) +PMR = (VPF, GKD) +QTN = (MMT, MPL) +KJQ = (RLK, VQJ) +PBJ = (LFN, FGC) +BTL = (PQR, XLV) +SBX = (KFC, VGK) +QQJ = (PDK, BNV) +BRZ = (GNF, QQN) +JTL = (XLT, BXD) +SKG = (PRV, DBK) +RQG = (DHN, XRF) +DRC = (SFC, CHQ) +TJQ = (NQX, FCH) +PKS = (TMM, PMR) +TRP = (GVD, FBL) +LKQ = (XDF, CHK) +RTL = (XFP, LJL) +PPV = (MKN, BLH) +MTB = (GCG, TMC) +FPT = (PXF, SBG) +LDK = (FDN, PFD) +TND = (PPX, SVK) +VPK = (NHF, JDX) +HTP = (NKF, RPV) +PMS = (SMB, NSN) +GGG = (XKQ, PPQ) +DLL = (KKN, QTN) +JXX = (HHR, RVQ) +KSF = (QPV, GDQ) +XQD = (FGK, BNJ) +RJF = (CSB, KTM) +GCN = (KSF, LJS) +JKP = (LML, QDS) +XFP = (VPX, PMS) +DPT = (GXT, MNH) +DKK = (KNP, MRL) +NKB = (DDK, HNS) +CJK = (GSC, GBQ) +NLM = (LDL, JCP) +VMD = (DFD, XFM) +NBX = (XJC, CGJ) +PRS = (NLM, VDR) +RMQ = (FRG, FRG) +XNM = (TQX, VDV) +LJC = (VDR, NLM) +PHQ = (GJJ, HQS) +KXN = (KHB, HHL) +BXD = (CKM, XVL) +KFB = (NKF, RPV) +NFS = (PRL, RFL) +RJN = (SFV, RRG) +GQM = (VRS, BRS) +KQH = (VBC, BSJ) +DNR = (BMR, LJQ) +HHR = (LPC, SRV) +DLJ = (MHG, MHG) +SMB = (RFJ, NJT) +RHV = (FLL, TNV) +NTD = (HBX, GVS) +VNT = (FDF, HQC) +PRC = (GMF, VVQ) +FBP = (HLB, KFR) +KTM = (FDL, LRZ) +TQP = (QGL, DMD) +SBM = (QPG, KXN) +QVK = (CJK, QRL) +XRF = (RGF, PBJ) +NDH = (CBT, MMP) +GVL = (RTL, SML) +LRZ = (VHN, FLG) +CQH = (MMF, TNT) +SLK = (TJQ, SSC) +QBT = (SQM, DJP) +FNF = (LLG, BHP) +STB = (KMS, NRP) +HVV = (SLG, DGN) +RFX = (BTN, RJN) +MKL = (GVM, LVP) +VDV = (BPK, CFB) +CBT = (GJX, JGH) +PPX = (HVH, HNJ) +NQJ = (TMT, NTC) +MJH = (MHP, XQT) +LTA = (KLS, BFV) +CSH = (BXQ, GHF) +HTK = (XTG, FLF) +VNC = (JDX, NHF) +BFG = (MRC, NKK) +KKG = (GVS, HBX) +PNK = (GVF, VBJ) +XXB = (LRV, HJS) +DVF = (TBS, RCP) +PNR = (NCJ, QQV) +QKQ = (CQT, TKX) +TTR = (SPL, DKH) +BTN = (RRG, SFV) +VLM = (PHH, SFH) +TQG = (SJD, CSH) +MHP = (LQX, HNT) +NQX = (GDC, XRN) +TQX = (BPK, CFB) +TVB = (LHR, SMV) +MBQ = (XQL, HGM) +HXJ = (MQS, NFX) +DHN = (PBJ, RGF) +BFN = (MKG, NKB) +PVR = (JXJ, NDH) +QRL = (GBQ, GSC) +GJM = (NSP, BTV) +KQV = (NHH, CQK) +KNP = (TKS, PKS) +PDD = (FND, JKP) +GXT = (VKF, RQM) +XDC = (FTL, JTG) +MMF = (SSM, NQJ) +BFV = (CHF, NHG) +DHS = (PHX, PHX) +VXC = (PQH, TFJ) +XLV = (TLL, RVS) +PXX = (SLC, PDD) +GVD = (DRC, DRC) +THS = (VQJ, RLK) +DBK = (PGC, NSK) +KHB = (PHC, QQJ) +TKS = (PMR, TMM) +SVR = (NJN, TFP) +HNQ = (QQN, GNF) +MKN = (GGG, DFM) +KRP = (NFM, NFC) +SHM = (XBQ, DLL) +NTL = (NCT, DFB) +NRK = (QVK, FLR) +HXL = (DSX, DSX) +KSB = (XKV, PVR) +NKK = (BKF, QMJ) +MHG = (KLS, BFV) +PNP = (XBR, QHN) +CLQ = (TPX, NMV) +RSG = (XDC, NRQ) +BPM = (PCQ, QKX) +PHC = (PDK, BNV) +TNR = (KJV, QGC) +XQL = (VPV, SVR) +MHV = (QTS, RSG) +XBR = (THC, JHT) +BDX = (PHH, SFH) +TBR = (CXV, SGD) +RVQ = (SRV, LPC) +NFM = (PKQ, MDK) +FBL = (DRC, QSZ) +TLM = (BNH, SLK) +NHH = (SKS, GPP) +FKF = (RMN, VPJ) +XVL = (HTP, KFB) +NHG = (CLQ, JGQ) +FGK = (NBH, KBX) +VMQ = (DFB, NCT) +LXX = (DKR, PNK) +SMJ = (QGB, NFS) +LVP = (KDC, GFT) +QGB = (PRL, RFL) +BRX = (BNJ, FGK) +BDV = (MRF, RXX) +SJM = (BMR, LJQ) +GBQ = (TQG, QXX) +JXR = (XJT, CVX) +TMN = (XSN, PQM) +CQT = (LGM, JMT) +CPG = (QHP, RBN) +BKZ = (BFV, KLS) +VVR = (HTK, GGR) +XFM = (NFP, FCC) +CVH = (GJV, HVV) +VPS = (XQT, MHP) +MDJ = (QHJ, MFT) +SNF = (QTS, RSG) +NKQ = (HMB, JVX) +PRL = (FNF, VXB) +CMN = (MLG, HJM) +JQL = (NKQ, CNV) +QSZ = (CHQ, SFC) +HLR = (MHV, SNF) +RDL = (TBG, GVL) +GVM = (KDC, GFT) +KTV = (CKK, VBK) +SLC = (JKP, FND) +QHL = (MRF, RXX) +KKN = (MPL, MMT) +TNV = (HKP, GTX) +QMJ = (TVG, JCF) +BSJ = (NFV, FST) +BNJ = (NBH, KBX) +XXQ = (GCD, CMQ) +TGQ = (NKK, MRC) +SVH = (NFC, NFM) +LQB = (FRG, JKS) +GNF = (HRV, PTT) +PFV = (CVX, XJT) +JTK = (DLJ, DLJ) +KSP = (LVP, GVM) +PFD = (TBR, QDT) +MLT = (KSQ, KKJ) +GVF = (HFK, GLB) +JLS = (PPX, SVK) +TBK = (CMQ, GCD) +LJB = (QHJ, MFT) +KSQ = (PST, TQP) +SXC = (PHX, TRP) +TTB = (NRP, KMS) +VBX = (MHV, SNF) +CXV = (PNR, HTT) +XCT = (NFS, QGB) +JBD = (KRP, SVH) +JDX = (HRS, VXC) +BNH = (TJQ, SSC) +HQD = (RBN, QHP) +RXX = (NKP, JKG) +NTC = (NND, PNP) +QTF = (TVQ, MHR) +JND = (FCV, SBH) +RDS = (MQB, GCN) +FDL = (FLG, VHN) +TGJ = (SFL, PHQ) +KBX = (GQB, LVX) +GQR = (TMD, KQH) +LMS = (JBD, GSM) +VPJ = (SMJ, XCT) +LVQ = (HXL, VNK) +GDK = (QBV, FKF) +KCD = (PXM, THR) +JGG = (GCV, HDH) +NFP = (BRK, GLT) +SFV = (TBK, XXQ) +KJK = (QKN, XPD) +CVX = (SBX, QKJ) +GCG = (QJF, MDQ) +FNB = (VFV, VPQ) +CBV = (STX, MBQ) +PNH = (QPG, KXN) +HFC = (GSJ, RDT) +GHF = (FLN, RJF) +CKK = (BRV, DKG) +LFN = (QKQ, QSK) +MNH = (VKF, RQM) +MMP = (GJX, JGH) +HVB = (SSG, TNR) +TMD = (BSJ, VBC) +QTS = (NRQ, XDC) +TVQ = (PTN, HVB) +HTT = (QQV, NCJ) +PQM = (KJQ, THS) +XJT = (QKJ, SBX) +PST = (QGL, DMD) +XXT = (MBD, KQV) +PCL = (QJP, FXX) +MJC = (VPK, VNC) +QPV = (JLS, TND) +JLJ = (PQM, XSN) +BKF = (TVG, JCF) +SFT = (FRQ, MQV) +XGJ = (HXL, HXL) +JSF = (KKJ, KSQ) +RMN = (XCT, SMJ) +RPV = (TBD, DKP) +XLT = (CKM, XVL) +DJB = (CMN, XNQ) +KCK = (GVB, RMS) +LLT = (VFV, VPQ) +CVS = (MHR, TVQ) +NBS = (VBK, CKK) +LJQ = (DMR, FRX) +HKS = (TGM, RHV) +HTC = (BFR, RFX) +LDL = (VMD, SSP) +QRV = (HXV, DVF) +NST = (TBG, GVL) +GQB = (JSF, MLT) +KJT = (MBD, KQV) +GSJ = (SVQ, JTT) +FDX = (TVB, GXP) +SSP = (XFM, DFD) +FRQ = (LDK, HBD) +JLR = (HTD, SVP) +HNS = (SPR, TCR) +MCZ = (SGM, CGR) +GCV = (VPS, MJH) +MDQ = (JJC, JXL) +RKG = (NHX, CRT) +TMT = (NND, PNP) +SFC = (KSB, CXF) +CQK = (SKS, GPP) +FND = (LML, QDS) +HVH = (HBN, SVN) +CNV = (HMB, JVX) +CMQ = (CXS, PCC) +NLQ = (JTR, MCM) +GDC = (RMQ, RMQ) +PHX = (GVD, GVD) +NKP = (HXJ, MGF) +RRG = (XXQ, TBK) +TFP = (BGQ, FBP) +GXX = (LJB, MDJ) diff --git a/2023/_input/day_09.txt b/2023/_input/day_09.txt new file mode 100644 index 0000000..9d29f6c --- /dev/null +++ b/2023/_input/day_09.txt @@ -0,0 +1,201 @@ +11 22 50 101 188 336 587 1005 1681 2738 4336 6677 10010 14636 20913 29261 40167 54190 71966 94213 121736 +21 36 67 138 289 580 1107 2039 3695 6718 12488 24067 48215 99418 207551 431985 887001 1786840 3524357 6806068 12879661 +-3 -8 -18 -23 7 125 405 935 1805 3090 4828 6993 9463 11983 14123 15231 14381 10316 1386 -14519 -40041 +14 37 80 152 269 464 799 1391 2476 4556 8724 17371 35687 74731 157454 330081 683010 1388455 2767484 5408630 10376697 +9 26 47 70 93 114 131 142 145 138 119 86 37 -30 -117 -226 -359 -518 -705 -922 -1171 +18 21 23 33 62 128 270 570 1176 2313 4282 7511 12879 22831 44291 95151 217421 502706 1141416 2520254 5421671 +12 32 67 118 199 349 658 1318 2720 5638 11578 23448 46872 92806 182734 358789 702872 1371504 2657081 5091822 9618497 +9 6 3 0 -3 -6 -9 -12 -15 -18 -21 -24 -27 -30 -33 -36 -39 -42 -45 -48 -51 +23 35 49 65 83 103 125 149 175 203 233 265 299 335 373 413 455 499 545 593 643 +-4 6 25 57 125 281 621 1324 2746 5615 11391 22876 45183 87200 163715 298401 527896 907252 1517069 2472675 3935761 +26 41 68 126 243 468 895 1702 3225 6116 11675 22499 43656 84669 162684 307297 567628 1022355 1793558 3065372 5108609 +24 40 63 89 111 126 151 252 590 1488 3523 7647 15341 28806 51195 86890 141828 223880 343287 513157 750027 +19 42 87 159 271 453 768 1359 2570 5218 11158 24402 53256 114263 239229 487314 965149 1859258 3486793 6372809 11365101 +25 55 103 172 265 385 535 718 937 1195 1495 1840 2233 2677 3175 3730 4345 5023 5767 6580 7465 +-8 -14 -10 21 113 332 793 1673 3206 5635 9083 13296 17233 18603 13822 -270 -19860 -16600 102292 575559 1942033 +16 20 19 17 18 17 -16 -150 -479 -1029 -1496 -662 4765 22298 67451 170137 385142 808774 1604633 3042543 5556076 +-4 5 32 101 250 537 1053 1942 3428 5849 9698 15671 24722 38125 57543 85104 123484 175997 246692 340457 463130 +14 25 36 47 58 69 80 91 102 113 124 135 146 157 168 179 190 201 212 223 234 +3 17 42 95 204 412 791 1466 2658 4777 8639 15961 30439 60006 121440 249622 515976 1065048 2187011 4461602 9044549 +13 30 60 104 167 261 425 791 1736 4168 9999 22860 49112 99203 189414 344027 597935 999698 1615030 2530680 3858645 +8 3 8 38 122 314 703 1427 2704 4908 8748 15663 28639 53800 103334 200578 388367 742032 1388911 2537895 4528387 +19 39 67 103 152 245 485 1124 2687 6185 13510 28201 56948 112525 219425 424528 817145 1566841 2995983 5722097 10942918 +14 25 40 72 139 269 508 924 1602 2638 4171 6548 10805 19774 40299 87270 190470 405583 831138 1633672 3083991 +13 17 15 7 1 14 82 300 925 2601 6818 16814 39295 87635 187749 388877 783611 1545633 3001626 5769078 11020853 +6 14 31 68 152 332 677 1269 2199 3579 5602 8736 14254 25515 50769 108831 239856 524796 1119141 2309532 4606184 +-6 -8 -10 -12 -14 -16 -18 -20 -22 -24 -26 -28 -30 -32 -34 -36 -38 -40 -42 -44 -46 +1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 +10 25 56 118 242 499 1052 2264 4900 10462 21687 43217 82423 150366 263003 443209 725410 1167383 1879426 3091880 5301500 +-6 -10 -14 -18 -22 -26 -30 -34 -38 -42 -46 -50 -54 -58 -62 -66 -70 -74 -78 -82 -86 +12 30 68 135 240 392 600 873 1220 1650 2172 2795 3528 4380 5360 6477 7740 9158 10740 12495 14432 +5 17 46 119 280 603 1219 2361 4441 8203 15071 27981 53341 105448 215932 452964 958713 2020081 4199340 8572007 17156162 +-3 9 41 101 201 368 671 1279 2584 5466 11866 25995 56767 122411 258659 532311 1062091 2048055 3808587 6818945 11735473 +-9 -12 -11 9 84 276 686 1496 3068 6127 12037 23146 43161 77603 134751 228397 385658 666731 1209878 2325572 4680619 +12 5 0 6 35 111 296 744 1812 4290 9860 21957 47283 98318 197280 382109 715188 1295667 2276424 3886880 6463083 +19 30 47 79 134 219 340 502 709 964 1269 1625 2032 2489 2994 3544 4135 4762 5419 6099 6794 +19 30 39 42 35 14 -25 -86 -173 -290 -441 -630 -861 -1138 -1465 -1846 -2285 -2786 -3353 -3990 -4701 +29 56 111 214 403 750 1389 2560 4678 8446 15055 26589 46956 84122 155309 298349 594811 1214084 2492511 5068032 10098537 +14 24 44 83 150 254 404 609 878 1220 1644 2159 2774 3498 4340 5309 6414 7664 9068 10635 12374 +0 12 38 78 132 200 282 378 488 612 750 902 1068 1248 1442 1650 1872 2108 2358 2622 2900 +1 -2 1 20 85 273 742 1762 3743 7287 13333 23515 40903 71332 125526 222171 391957 682364 1162577 1927342 3097777 +29 52 86 134 205 319 525 953 1928 4181 9199 19763 40730 80122 150592 271344 470591 788642 1281716 2026588 3126179 +6 1 5 27 76 161 291 475 722 1041 1441 1931 2520 3217 4031 4971 6046 7265 8637 10171 11876 +12 18 28 60 153 382 879 1873 3777 7365 14092 26610 49518 90349 160737 277617 464186 750188 1170876 1763744 2561807 +18 38 83 164 295 500 825 1364 2318 4127 7753 15248 30822 62765 126856 252459 493574 948924 1797907 3362904 6212525 +3 12 39 96 203 394 744 1437 2910 6140 13210 28435 60622 127613 265379 546130 1114273 2257756 4549501 9126710 18237713 +16 26 34 55 131 354 908 2145 4710 9724 19034 35580 64081 112620 196475 346901 629732 1181822 2277550 4442729 8638775 +6 20 42 72 110 156 210 272 342 420 506 600 702 812 930 1056 1190 1332 1482 1640 1806 +10 20 26 25 23 48 162 477 1189 2653 5531 11054 21448 40583 74913 134784 236196 403114 670432 1087703 1723757 +25 42 61 88 144 284 635 1454 3202 6625 12828 23323 40027 65181 101156 150107 213431 290980 379975 473562 558946 +24 42 61 88 153 323 724 1581 3300 6641 13067 25401 48981 93572 176374 326556 591848 1047836 1810729 3054502 5033465 +4 -3 -14 -35 -62 -52 122 739 2331 5841 12909 26479 52204 101750 200422 404261 837242 1769925 3781256 8082585 17149378 +-3 -2 7 37 105 231 439 754 1195 1792 2713 4692 10139 25658 67311 171008 412097 940862 2044571 4252387 8507381 +13 37 69 109 170 299 622 1434 3369 7714 16983 35950 73462 145522 280356 526465 965021 1728403 3027193 5188571 8709770 +12 18 42 109 272 627 1327 2598 4775 8401 14467 24916 43589 77856 141250 257507 466510 832740 1456952 2491919 4163222 +21 34 53 87 150 265 477 875 1630 3080 5943 11836 24461 52162 113223 246648 534099 1144954 2429521 5111477 10680048 +12 13 14 11 14 65 260 775 1896 4053 7858 14147 24026 38921 60632 91391 133924 191517 268086 368251 497414 +20 24 30 56 126 280 611 1340 2945 6375 13404 27216 53374 101453 187916 341565 614782 1108250 2026798 3804732 7379586 +17 26 47 104 230 466 864 1495 2473 4029 6712 11885 22900 47846 105887 241485 555089 1266432 2839213 6216114 13244090 +11 14 16 26 54 108 199 365 743 1750 4476 11446 27990 64605 140957 292630 582475 1119546 2090232 3808390 6794110 +-6 1 30 94 216 455 962 2083 4538 9727 20246 40738 79256 149377 273378 486867 845354 1433349 2376686 3858894 6142568 +-2 -8 -13 1 78 314 897 2161 4654 9220 17095 30017 50350 81222 126677 191841 283102 408304 576955 800449 1092302 +11 27 54 94 158 284 582 1332 3171 7414 16561 35052 70364 134643 247321 439752 764107 1311085 2245200 3873674 6777042 +6 4 17 54 134 300 634 1269 2403 4342 7649 13589 25311 50743 109257 246239 563539 1280662 2853602 6198756 13103411 +7 26 51 92 173 332 621 1106 1867 2998 4607 6816 9761 13592 18473 24582 32111 41266 52267 65348 80757 +7 10 22 59 164 436 1073 2427 5064 9815 17807 30500 49865 79073 124498 200560 340061 614336 1169916 2291673 4506810 +15 32 50 77 132 252 500 983 1914 3793 7840 16898 37180 81584 176133 373039 778241 1610661 3330093 6910771 14417574 +14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 +-2 -10 -23 -27 17 189 639 1644 3713 7762 15380 29203 53406 94313 161112 266646 428232 668438 1015723 1504817 2176687 +6 15 45 110 241 513 1098 2356 4976 10179 19995 37626 67907 117877 197472 320352 504874 775223 1162713 1707270 2459109 +3 11 29 61 121 246 524 1144 2490 5336 11267 23587 49262 103059 216332 455562 961106 2027142 4264082 8922954 18531832 +-4 6 40 122 287 595 1163 2233 4316 8490 17003 34479 70315 143397 291206 586947 1170844 2305779 4474156 8544619 16058939 +14 22 36 82 198 431 834 1463 2374 3620 5248 7296 9790 12741 16142 19965 24158 28642 33308 38014 42582 +15 34 77 168 348 680 1251 2178 3643 6021 10250 18772 37745 81975 185499 423606 957398 2121479 4591530 9694803 19967229 +15 32 73 153 300 580 1131 2200 4186 7719 13864 24663 44477 83071 162312 330185 689561 1456762 3080211 6478977 13515986 +8 23 43 64 87 126 230 542 1426 3703 9058 20729 44688 91697 180910 346222 647728 1193456 2183213 4001351 7416521 +0 4 15 49 143 368 842 1748 3370 6168 10921 18975 32641 55796 94748 159434 265028 434044 699027 1105933 1718307 +-6 -13 -22 -28 -8 92 373 1013 2336 4966 10141 20303 40137 78302 150159 281801 515522 916345 1578080 2625186 4202882 +20 41 82 165 328 638 1223 2336 4464 8495 15956 29335 52500 91228 153857 252074 401852 624549 948182 1408889 2052592 +-3 1 13 32 56 82 109 149 263 663 1957 5662 15170 37424 85645 183547 371585 715901 1320765 2345452 4026652 +18 39 83 162 292 491 787 1249 2053 3594 6654 12635 23865 43984 78416 134932 224308 361081 564405 859008 1276250 +13 32 71 153 314 598 1062 1802 3021 5184 9343 17767 35078 70174 139314 270848 512197 939824 1673087 2893029 4867338 +21 32 57 122 264 538 1046 2002 3849 7446 14345 27180 50192 89916 156058 262592 429109 682452 1058673 1605350 2384304 +7 20 52 124 278 602 1267 2576 5025 9376 16742 28684 47320 75446 116669 175552 257771 370284 521512 721532 982282 +21 42 76 132 228 401 725 1347 2575 5088 10399 21828 46515 99562 212449 449720 940981 1940010 3929898 7803416 15162194 +20 46 86 139 202 275 368 515 822 1619 3865 10107 26592 67709 165037 385320 865408 1878792 3959720 8129911 16303870 +16 27 38 49 60 71 82 93 104 115 126 137 148 159 170 181 192 203 214 225 236 +11 3 -13 -36 -61 -66 23 409 1590 4712 12293 29636 67446 146443 305139 612443 1187397 2229153 4061303 7195900 12423989 +12 27 53 112 240 488 927 1659 2841 4749 7953 13767 25336 50140 105559 230882 512545 1135843 2488238 5360444 11327295 +14 16 20 39 110 308 760 1659 3278 5984 10252 16679 25998 39092 57008 80971 112398 152912 204356 268807 348590 +5 28 64 123 221 379 626 1012 1643 2757 4868 9014 17155 32778 61778 113697 203417 353418 596728 980709 1571841 +22 50 93 151 224 312 415 533 666 814 977 1155 1348 1556 1779 2017 2270 2538 2821 3119 3432 +15 21 27 33 39 45 51 57 63 69 75 81 87 93 99 105 111 117 123 129 135 +5 6 21 72 200 470 976 1846 3247 5390 8535 12996 19146 27422 38330 52450 70441 93046 121097 155520 197340 +-3 7 37 100 210 382 632 977 1435 2025 2767 3682 4792 6120 7690 9527 11657 14107 16905 20080 23662 +13 38 74 123 190 285 428 660 1080 1973 4187 10083 25651 64792 157351 363294 796503 1663072 3320784 6368699 11778556 +26 43 74 146 312 660 1320 2469 4334 7193 11374 17252 25244 35802 49404 66543 87714 113399 144050 180070 221792 +12 22 40 71 128 236 436 792 1412 2515 4618 8986 18586 39920 86324 183759 381205 770538 1527573 3001727 5916185 +26 47 82 142 258 497 977 1877 3438 5951 9728 15052 22102 30849 40919 51419 60722 66207 63950 48362 11770 +15 38 75 143 269 502 939 1765 3307 6102 10979 19155 32345 52886 83875 129321 194311 285190 409755 577463 799653 +11 32 68 125 211 337 514 747 1027 1326 1624 2067 3507 8955 26942 78497 210491 519548 1192684 2573409 5265331 +24 37 48 71 144 348 834 1856 3815 7348 13572 24760 46057 89453 182286 384291 819970 1737271 3609800 7308773 14383550 +14 23 39 78 177 399 844 1675 3168 5795 10349 18120 31131 52443 86538 139789 221026 342207 519203 772706 1129269 +23 44 89 176 338 646 1255 2498 5067 10332 20858 41185 78936 146312 262020 453659 760559 1237028 1955911 3012302 4527174 +3 15 38 75 127 194 286 453 846 1825 4138 9209 19602 39808 77728 147795 277949 525235 1009526 1983071 3967025 +15 30 69 145 282 530 989 1854 3502 6651 12630 23808 44239 80589 143420 248915 421137 694924 1119531 1763139 2718360 +11 27 42 64 120 271 629 1380 2826 5468 10161 18381 32653 57198 98866 168431 282333 464961 751580 1192014 1855206 +29 43 70 129 248 475 897 1667 3039 5411 9376 15781 25794 40979 63379 95607 140945 203451 288074 400777 548668 +1 8 15 30 78 214 550 1305 2887 6016 11897 22452 40620 70734 118984 193975 307389 474760 716371 1058282 1533498 +17 41 75 133 254 512 1026 1970 3583 6179 10157 16011 24340 35858 51404 71952 98621 132685 175583 228929 294522 +5 7 15 34 82 210 528 1237 2667 5321 9925 17484 29344 47260 73470 110775 162625 233211 327563 451654 612510 +9 16 38 85 173 327 584 996 1633 2586 3970 5927 8629 12281 17124 23438 31545 41812 54654 70537 89981 +1 -3 -7 -11 -15 -19 -23 -27 -31 -35 -39 -43 -47 -51 -55 -59 -63 -67 -71 -75 -79 +-6 -6 -4 -2 1 9 19 -2 -157 -686 -2078 -5248 -11782 -24199 -46065 -81592 -134032 -201694 -269728 -294886 -179233 +5 -4 -19 -31 -22 49 290 976 2741 6904 15972 34367 69464 133185 244846 437063 769021 1356724 2440635 4532113 8719286 +-9 -15 -22 -30 -39 -49 -60 -72 -85 -99 -114 -130 -147 -165 -184 -204 -225 -247 -270 -294 -319 +0 1 6 29 100 285 721 1673 3624 7419 14520 27531 51400 96251 183925 362553 737926 1539316 3255458 6913378 14648222 +13 10 3 -8 -23 -42 -65 -92 -123 -158 -197 -240 -287 -338 -393 -452 -515 -582 -653 -728 -807 +0 -2 -4 -6 -8 -10 -12 -14 -16 -18 -20 -22 -24 -26 -28 -30 -32 -34 -36 -38 -40 +-1 4 27 78 167 304 499 762 1103 1532 2059 2694 3447 4328 5347 6514 7839 9332 11003 12862 14919 +10 15 18 10 -22 -95 -230 -452 -790 -1277 -1950 -2850 -4022 -5515 -7382 -9680 -12470 -15817 -19790 -24462 -29910 +18 21 33 70 152 313 627 1261 2572 5273 10721 21464 42397 83370 165177 333175 687614 1449557 3100549 6670918 14319238 +8 7 14 40 90 165 266 398 572 816 1245 2329 5694 16230 47262 132668 354216 900957 2193364 5132858 11584554 +13 20 32 47 71 141 365 985 2469 5638 11834 23135 42623 74711 125535 203417 319405 487896 727348 1061087 1518215 +30 46 75 130 225 370 573 870 1409 2614 5458 11897 25586 53148 106542 207529 395928 744358 1383557 2544244 4623943 +15 27 57 124 274 607 1320 2775 5618 11006 21046 39620 73887 136979 252876 465407 855217 1572073 2896147 5352524 9920440 +7 9 29 77 161 283 426 538 541 430 583 2482 10151 32754 88968 213957 470027 962343 1861441 3434675 6089205 +10 31 65 131 265 526 999 1797 3072 5055 8157 13177 21679 36618 63315 110903 194390 337511 576569 965495 1582389 +13 16 34 83 180 349 638 1147 2067 3730 6670 11695 19970 33111 53290 83351 126937 188628 274090 390235 545392 +2 2 2 15 80 277 753 1775 3836 7847 15459 29588 55294 101364 183419 330383 598182 1098304 2055404 3918961 7571084 +16 39 76 127 192 271 364 471 592 727 876 1039 1216 1407 1612 1831 2064 2311 2572 2847 3136 +10 15 39 91 175 286 406 500 512 361 -63 -903 -2339 -4592 -7928 -12662 -19162 -27853 -39221 -53817 -72261 +15 31 58 112 233 506 1095 2293 4607 8933 16950 32011 61094 118897 236109 475677 964419 1954471 3943402 7909886 15774667 +-10 -9 8 64 190 420 795 1380 2306 3879 6858 13112 27064 58706 129697 285481 619194 1318885 2761550 5702764 11664186 +10 7 12 49 158 396 843 1621 2932 5113 8690 14389 23032 35214 50629 66897 77750 70475 22600 -102039 -357478 +21 42 75 134 253 506 1037 2109 4193 8130 15411 28632 52193 93322 163517 280511 470877 773402 1243371 1957914 3022581 +15 16 29 72 179 422 938 1960 3855 7176 12739 21740 35931 57878 91328 141716 216847 327792 490041 724960 1061603 +24 39 53 72 124 281 704 1728 4012 8788 18254 36177 68823 126453 225892 395218 682628 1173313 2021135 3506626 6140098 +7 31 70 122 186 265 371 536 833 1411 2548 4726 8732 15789 27721 47156 77771 124583 194290 295666 440014 +11 25 50 95 179 351 724 1535 3267 6917 14578 30634 64052 132494 269255 534337 1031255 1931381 3507686 6179533 10569573 +13 18 32 78 186 385 700 1171 1915 3264 6044 12124 25472 54119 113664 233265 465465 901710 1696040 3100186 5514198 +-6 0 25 93 252 578 1188 2274 4170 7462 13142 22796 38838 64954 107417 179222 311993 587272 1213186 2702991 6275339 +10 17 42 106 260 607 1338 2790 5545 10621 19880 36930 69098 131634 256413 509429 1024928 2069981 4162858 8283326 16235004 +22 41 66 111 203 382 715 1351 2658 5497 11702 24849 51411 102410 195691 358957 633718 1080321 1784242 2863835 4479747 +0 5 14 33 72 148 300 620 1304 2727 5546 10835 20256 36270 62392 103494 166160 259097 393606 584117 848792 +24 37 64 128 259 506 966 1834 3478 6543 12088 21760 38009 64348 105662 168570 261844 396889 588288 854416 1218127 +14 32 67 127 221 375 675 1356 2971 6708 14994 32661 69188 142923 288788 571846 1110340 2113488 3941533 7198411 12871031 +13 11 -1 -26 -53 -40 122 680 2156 5620 13245 29427 62996 131484 269244 542818 1080071 2125557 4145563 8025784 15437929 +8 13 21 35 65 145 367 957 2433 5900 13561 29580 61566 123222 239213 454176 849182 1571063 2883077 5249689 9474135 +4 14 23 31 41 57 82 116 154 184 185 125 -41 -373 -948 -1862 -3232 -5198 -7925 -11605 -16459 +29 44 75 141 260 450 735 1157 1807 2912 5050 9604 19591 40983 84544 168055 318771 576690 1002417 1702999 2913276 +8 14 37 105 265 597 1241 2451 4713 9004 17324 33696 65888 128149 245246 458014 830454 1458098 2476863 4070891 6476867 +20 39 80 170 348 672 1241 2251 4119 7733 14941 29513 59044 118686 238351 476442 945926 1863952 3646472 7088027 13699400 +16 36 69 114 171 255 430 875 2004 4681 10598 22918 47325 93668 178435 328345 585400 1013794 1709131 2810458 4515671 +8 22 39 68 142 343 850 2030 4599 9887 20258 39779 75325 138500 249171 442346 782208 1391597 2514461 4647009 8807890 +9 21 40 66 99 139 186 240 301 369 444 526 615 711 814 924 1041 1165 1296 1434 1579 +12 11 16 43 129 357 909 2164 4856 10302 20700 39476 71617 123850 204397 321831 482252 683565 905040 1089529 1114665 +26 52 91 147 230 373 674 1382 3056 6836 14883 31102 62426 121329 231036 436371 825686 1573308 3018011 5801885 11106502 +25 42 63 87 119 181 330 683 1449 2968 5757 10563 18423 30731 49312 76503 115241 169158 242683 341151 470919 +-1 11 39 91 172 280 405 547 798 1587 4286 12545 35006 90518 217787 492817 1059981 2186811 4359661 8448767 15988948 +0 2 20 72 183 385 717 1225 1962 2988 4370 6182 8505 11427 15043 19455 24772 31110 38592 47348 57515 +10 14 31 66 121 195 284 381 476 556 605 604 531 361 66 -385 -1026 -1894 -3029 -4474 -6275 +5 6 5 2 -3 -10 -19 -30 -43 -58 -75 -94 -115 -138 -163 -190 -219 -250 -283 -318 -355 +6 3 0 -3 -6 -9 -12 -15 -18 -21 -24 -27 -30 -33 -36 -39 -42 -45 -48 -51 -54 +9 22 43 79 148 279 512 898 1499 2388 3649 5377 7678 10669 14478 19244 25117 32258 40839 51043 63064 +14 26 58 137 320 723 1574 3299 6654 12922 24213 43964 77893 136038 237353 420103 764857 1443773 2822859 5667790 11546877 +13 33 62 96 134 191 331 740 1864 4640 10849 23619 48103 92352 168396 293537 491847 795851 1248360 1904402 2833180 +12 30 69 152 310 574 970 1538 2413 4038 7647 16285 36846 83927 186723 400716 826510 1638778 3128829 5764650 10272266 +27 55 103 188 344 644 1241 2432 4749 9081 16831 30112 51986 86750 140273 220388 337343 504315 737991 1059220 1493740 +5 14 49 131 291 579 1081 1949 3454 6077 10658 18628 32354 55632 94368 157492 258155 415264 655415 1015289 1544581 +16 25 35 65 145 325 694 1415 2801 5486 10783 21367 42473 83857 162854 309090 572122 1035450 1846272 3285211 5935131 +-3 -5 -7 -9 -11 -13 -15 -17 -19 -21 -23 -25 -27 -29 -31 -33 -35 -37 -39 -41 -43 +14 35 81 177 367 726 1371 2465 4218 6921 11125 18228 32007 62108 131326 289946 643046 1401647 2978197 6165267 12470799 +8 15 33 71 152 325 681 1375 2669 5037 9424 17853 34772 69892 143869 299127 619536 1264752 2528131 4931762 9378966 +25 45 85 167 329 638 1205 2203 3905 6792 11838 21167 39403 76205 150702 298825 584881 1119135 2083667 3769359 6627549 +-2 0 9 35 94 212 429 803 1414 2368 3801 5883 8822 12868 18317 25515 34862 46816 61897 80691 103854 +19 40 70 123 236 482 1000 2066 4237 8616 17319 34283 66661 127274 239084 443728 818448 1510615 2809386 5296041 10160917 +7 16 38 90 216 514 1187 2625 5520 11014 20893 37896 66360 113757 194327 337154 602913 1116448 2126716 4111930 7956532 +4 14 34 70 132 250 516 1167 2724 6202 13406 27328 52660 96438 168832 284097 461700 727638 1115962 1670522 2446948 +14 36 76 136 225 371 637 1157 2232 4566 9794 21585 47831 104806 224753 469193 951410 1873108 3582208 6661186 12058253 +-6 -10 -3 38 158 451 1098 2418 4949 9599 17939 32768 59225 107100 195878 365869 702114 1383254 2775705 5604310 11243202 +22 39 72 134 236 381 561 762 989 1348 2284 5207 14004 38445 101446 253929 604340 1376121 3018100 6414308 13278664 +4 6 5 2 -4 -8 15 123 405 939 1670 2149 1051 -4637 -20898 -58612 -136342 -284236 -549349 -1002740 -1748754 +-4 -5 -3 8 34 75 120 140 66 -281 -1381 -4475 -12559 -32307 -77351 -173027 -361540 -703685 -1267491 -2083506 -3028168 +9 4 12 44 118 267 553 1097 2146 4229 8522 17669 37517 80544 172215 362114 742487 1477802 2850088 5326146 9654208 +17 23 26 37 79 184 390 738 1269 2021 3026 4307 5875 7726 9838 12168 14649 17187 19658 21905 23735 +12 26 49 79 117 169 256 451 984 2506 6696 17551 43942 104382 235498 506568 1043976 2072142 3982463 7450843 13640335 +15 34 56 82 124 208 374 688 1297 2573 5404 11698 25170 52483 104814 199918 364771 638892 1078480 1761562 2794440 +9 13 29 72 163 329 603 1024 1637 2493 3649 5168 7119 9577 12623 16344 20833 26189 32517 39928 48539 +11 12 12 27 98 315 848 1986 4187 8141 14850 25749 42971 70098 114360 192690 347176 681931 1446476 3216825 7277259 +29 57 100 164 258 407 683 1269 2597 5657 12677 28540 63547 138465 293220 601110 1191052 2281288 4229680 7609776 13332357 +3 15 55 149 343 708 1356 2489 4511 8241 15273 28537 53123 97438 174774 305373 519083 858707 1384155 2177517 3349183 +3 3 7 13 9 -25 -108 -242 -389 -441 -183 751 2929 7179 14654 26904 45955 74395 115467 173169 252361 +15 26 56 127 281 584 1129 2046 3528 5878 9573 15327 24116 37104 55380 79382 107845 136066 153230 138487 55411 +13 22 49 101 191 360 717 1502 3192 6700 13762 27667 54560 105638 200664 373344 679247 1207098 2094439 3548833 5875981 +11 20 43 83 153 297 621 1327 2748 5395 10057 18063 31950 57011 104535 197976 383721 748402 1444527 2725143 4985639 +7 8 7 4 -1 -8 -17 -28 -41 -56 -73 -92 -113 -136 -161 -188 -217 -248 -281 -316 -353 +13 15 17 28 66 150 299 564 1148 2722 7142 18944 48283 116441 265722 576554 1196015 2383889 4584847 8538556 15443576 +1 17 45 101 221 470 955 1843 3398 6089 10899 20116 39189 80859 174090 383047 846864 1861718 4047185 8676465 18316948 +-3 0 10 26 60 152 385 900 1911 3720 6732 11470 18590 28896 43355 63112 89505 124080 168606 225090 295792 +-5 -11 -21 -35 -53 -75 -101 -131 -165 -203 -245 -291 -341 -395 -453 -515 -581 -651 -725 -803 -885 + diff --git a/2023/_input/day_10.txt b/2023/_input/day_10.txt new file mode 100644 index 0000000..9037f75 --- /dev/null +++ b/2023/_input/day_10.txt @@ -0,0 +1,141 @@ +F-|-J7F7F7F-7F7F--7-L|-L7777.FFL-|.|.FF-FF7FFFFF7--F-J7.|-FF77|-F|777-F7.F7FF|-J7|-7.FFJ77FL.7-|-|7.|.77|-F-|-F|-FL.F77.FF-77|7.7--7--7FJ--7 +|7LJ7.F-JLJ7L7--7F77.|LLJ|LF7|.LLJ-|7L|FJLF77L-FJ7FJ.LFF|7L-LLF-LJF777||7L-F7LLLLJ7|L7||F-J|-|.J.F7FF7F7|J|F|-FJLF.FLL|7J|FF-7-FJ7J|J.F7L|LJ +L|J.7.L-J7FJ--..F-J|-7-|.J|LL-J.F|J|-77L|.LL7J||FJ7|.F--J7-J|7.LJJJJFFJL7JF||7.||-LJ-F7-|FFJ-|77.|L7||||7F-LJF|L7J7FF|JL7L7JJL-|---|7-JJ-FJ7 +LJ.L-|--JF7J|LF7|L-7.|FFJJ-.|JL7JF7F7F7777F-JFFJJLLJFL-J-|.FLJ-7|FF7FL7FJF7||F7FF-J7F||F7-7L7L|7.L7||LJ|.LJ|FFJFF7F7FLLJLJ||LL-J7.L|7LJJFJF- +.L7J7L7JJF|-||||7LJ|LFL7J-LL|7-|-.F|LJ|F7F7JF|7J7.FFJ|-JF-7F7.F77FJ|F7||FJ||LJL-7.FFFJ|||F|7|-JFF7|||F7|7--J||.JJFFF7J7.JJL-.L7L---LF7|J|-|J +.||||-7FF---J--LJ-F|F|JL|.|.|.F||.-L-7LJLJL7-JJJ--F7FF7-|LFJL-JL7L7||||||FJL-7F-JFJJL7LJL7F--7JFJLJLJ|LJJ-FF|--J.J-L-7F7J.L7|.J.F||FJ--.|.L- +.-7-J.L7J7.F|JLLJFL--L7FLFL---FJ-7L||L7F---JJ-J.||||FJ|F-7|F---7L-J||||LJL--7|L--7LFFL7F-J|F-J.L--7F-JF77.F.|FF-LJL|LL7|.FL|LJ--7-7J|..----J +|JJJLF.L.--|-FJ7..LLF-7FL7|LJF7J-F-7F7|L--7J.F.FFFJ||FJL7|LJF--JF-7LJ||F----J|F--JF7F-J|JFJ|||-F7FJ|7L||7-J-F-|7|J|LF-JLF-7|-7J.F-J-|F|J.L|. +|J||7L-J.|FLF-FJJ-7LJF|J.J|-.7|F-L7LJLJF--JF-7-||L7|||F7||F7L7F-JJL-7LJL-7FF7||F--J|L-7|FJFJFF-J||FJ7L|L7.L7L7.F|.L-F-|7L-JJ.F7--7L-|-|-7.|F +|--7LJ.|FF7F--JJJ.F.FLJL|-|JFF-|J7L---7L-7||FJJLLFJLJLJLJLJ|-LJF7.F-JF---JFJLJLJF7FJF7||L7|F7L-7||L7F7L7|7FJ77-F7-|J|FF-JJ|7FF--J|.L7FL7J.|J +FJFJ|.|L--L-LFJJ.L7-JF|LL.L.7JLJ.FFF7FJF-JFJL7JFLL-7F7F7F-7L7F-JL-JF7L7F7-L7F---JLJFJ|||FJLJL7FJLJFJ|L-JL7J7.|-F|F7|LFJ||J|FF7.F7J77JFF|F-J| +|.JJ|FFJ.FL7L7J|FL-.FJJ|F--7-.J..LFJ|L7L7FJF-J.7JF-J|LJ|L7L-JL---7FJL7LJ|F7|L-7F7F7L7||LJF---JL7F-J|L7F7FJJFF|-JL7L|J|F-JF--L|F7|LF|7J||7.F7 +L|-F-FJ7-7.L7L7F7-LJ7..-JJ-F7JFF|.|FJL|FJL7||F77.L--JF-JFJ7F7.F--J|F7L-7LJLJF-J|LJ|FJ||F-J.F7F7|L-7F-J|LJF77.||--L-L.LJJL|FL|L777.LJJ-JJ7-|| +.LFJLJJ7FL7J|FJ-L77|JF-L7F7.F7FF7FJL7FJL7FJL7|L-7F7F7L7FJF7|L7L---J||F-JF---JF-JF7||FJ|L--7|||||F-JL-7L--JL7-L7.LF.L|.|.FLL7J-LL-7LJLFJLF.L| +FJJ7F---7J||JLLLJ|FJ7.LJ77FFF-7||L7FJL-7||F7||F-J||||FJL-J||FJF----J|L-7|F7F7L--J||||FJF--J|LJLJL7F7FJF----JJ||7.F77F.F-L.|7J7LJ.|.|LL|LLJ|| +77.FLJ|.F.FL7JJ|FLL7F|FL|JL-L7LJL-J|F7FJLJ||LJL7FJ||LJF---J||.L7F7F7L7FJ||LJL--7F||||L7L7F7L-7F-7|||L7L----7F7-F7||FJ.7.J-7|L7.|F7F-..|LLLLL +|7--JLL---|J.L---7|F-JF-7F7..L----7|||L-7FJL---JL7|L-7|F7JL||F7LJLJL7|L7||F----JFJLJ|FJFJ|L-7||F||||FJF----J||F7FJL7JF77|F-J-.--J.|-J7JF-FJJ +.JLL|LL-JF|F77...|J-|7L-JFL7.F---7|LJ|F7|L-7F7F7FJL7FJ||L7FJLJ|F7F7FJL-JLJL7F7F7L--7|L7|FJF7LJL7LJ||L7|.F7F7|||LJF-J.|L7JJ.J-F-|F|J77L-JF|.| +F|-JL7.FF77|F7-LL.LL|F-JLF--FL7F7LJF-J|||F-J||||L7FJL7||FJ|F--J||||L--7F7F7LJ|||F--JL-J||FJL-7FJF-J|7|L-J||LJ|L-7L---JFJ.|-L7--LJLFF||..|LJJ +FJ7FJ|F--77|.L7J.-7LJLF.LF77LFJ|L-7L7FJ||L-7||||J||F-J||L7|L7F7|||L7F-J|LJ|F-J||L-----7LJL-7FJ|FJF7L7|F--J|F-JF-JF7F7FJ7-F7J|.F|JL-L7FL-J-|| +LJFJLL7L||L77L7..F|7-F--7||F7L-JF7|FJL7LJF-J||||FJ|L-7||FJL7||||LJFJL--JF7||F7|L7JF7F-JF---JL-JL-JL7|||F7FJL7|L7FJLJLJF-7||LF-777..F|F|7|J|J +.FJ7-FJ.7-|F-JLF-FF7.L-7|||||-F-JLJL--JF7|F7||||L7L7FJLJL7FJLJ|L-7|F7F-7|LJ||LJFJFJLJF7||F7F7F7FF7FJLJ||LJF-JF7||F7F-7|FJ|L7L7|LJ7F7FLLJJ-|. +F.||-J|.|LFL7.FF-J||F7F|LJLJL7L--7F7F-7|LJ|||LJL7|FJL7F--JL7F7|F-JLJ|L7|L-7LJF7L7L---J|L-JLJ||L7||L-7FJ|F-JF7|||LJLJFJ||FJFJFJL7.F--7FFJ|LL7 +L7|-7FL-77.FL-F-7FJLJL-JF7F-7L7F7LJLJFJ|F-J||F--J|L7FJL7-F7||LJL--7FJFJL--JF-JL-J|F---JF7F--J|FJ|L7FJL-JL-7|||LJF--7L7||L7L7|F7|JL|F|7|77||F +FLJFLLLFFJ7|7L||FJF-----JLJ.|FJ||F7F7L7LJF7LJ|F--JFJL7FJFJ||L7-F7FJL7L-7F-7L7F---7L----J|L7F7|L7L7|L7F7F--J|||F-JF7L-J||7L7|||LJJF|-JF|-JFJ- +F|7|7J.||77LJ--LL-J-F7F--7F-J|FJLJ|||7L7FJ|F-JL--7|F7||||FJL7L7||L-7L--JL7L7||F--JF7F---JFJ||L7|FJL-J|LJF7J|LJ|F-JL--7||F7|LJL--7J.|LJ.FF-JJ +FJFJ|7-.F77J-7FLF7LFJ|L-7|L-7|L--7LJ|F7||L|L-7F-7|||LJL7||F7L7||L77L---7FJJ|LJL-7F||L---7L-J|FJ|L---7L77|L7L-7LJF----J|||||F----JJ-J.|-L--F7 +||-7|7-LLJ7.-JFFJL7L7|F7||F-JL7F7L-7||LJL7L--J|FJ||L-7FJ||||7|||FJF7F7FLJF7|F---JFJ|F7F7|F--J|FJF--7L7L-JFJF7|F-JJF--7|LJ|||F7F77|JFF.|J-LL7 +7J7F|LFLJJJ.FF-JF7L7||||||L-7FJ|L7FJ||F--JF7F7||FJL7FJL-JLJL7|LJL7|LJ|F7FJLJL---7|FJ|LJ|||.F7|L7|F-JFJF--JFJLJ|FF7|F7|L-7LJLJLJ|F77|.7--7-|J +|.-LJF|FJ||L-|F-JL7|||||||F7|L-JFJL7|||F-7|||LJ||F-JL-7F----JL-7FJL-7||LJF-7F7F7||L7L-7LJL7|||FJ|L-7L7L7F7|F--JFJ|||LJF7|F7F--7LJL7JF-7-|J|| +-7JF7-JJ.F77LLJF--JLJ||||||LJF-7L--J||||FJ||L-7|||F7|FJ|F7F7LF-JL7JFJ||F-JJ||LJLJ|FJF7L7F-J|LJL7|F7|FJFJ||||JF-JFJ|L-7||LJ||F7L---JL-||-77.- +||.L.-7||F-JJ|.L----7|||||L-7|JL---7||||L7|L-7|||LJL7L7||||L7L-7FJFJFJLJF7FJL---7||FJ|FJL-7L-7FJLJ||L7|FJLJL7|F-JL|F-J|L7F|LJL-7F--7-||.|J77 +F77.L-|-LL.|-FF-----JLJLJ|F7LJF7F7J||||L7||F-J||L--7L-JLJ||FJF-JL-JFJF7FJLJF----J||L7|L7F-JF7|L-7L||FJLJF---J||LF-JL-7L7|FJF7F-J|F-J7L7FJ.LF +L-F.L7|JL|7FF7L--7F7F-7F7LJL--JLJ|FJLJL7|LJL7FJL-7LL-7F--J|L7L----7L7||L--7L-7F7FJL7||FJL-7|||F-JFJ|L-7FJF7F7|L-JF---JFJLJFJ|L--JL7-7.-|.F|J +FLL7L-|7F--FJL--7LJLJ7LJL7F7F---7|L---7|L-7FJ|F--JF77||-F7|FJF7-F7L7|||F7||F-J||L7FJ||L7F-J||||F7L7|F7||FJLJLJF--JF7F7|F7FJ.L7F-7FJF|7|F.F7J +F7FL7L|--7FL---7L7F-7F---J|LJF--JL7F-7|L7FJ|FJ|F7FJL7|L7|||L7|L7|L7|LJ|||FJ|F7||FJL7||FJ|F7|||||L7|LJ||||F---7L7F-J|||||LJF7|||FLJF7F77J.LJ7 +L-|-L7JL7FJ7LJFL7LJFJL----JF7L7F-7LJ-|L7||FJ|FJ|||F-JL7||LJ|||-||FJ|F-J|||-LJ||||F-J|||-||||||||.|L7FJ||||F7|L7LJF-J|LJL7FJL7|L7F7|LJ||.F-LF +JL|.L7FL7JF||LF7L-7|F7JF---JL-J|FJF-7|FJLJL-J|FJLJL7F7||L-7FJL7LJL7||F7||L-7FJ|LJL7FJLJFJ|||LJLJFJFJL7|LJLJL7FL--JF7|F-7LJF7||FJ|||F-JJFFJL| +|L7F7J--F7LLF-JL--JLJ|FJF------JL7|FJLJF7LF--JL--7|||LJ|F7||F-JF--J|||LJ|F7|L7|F--JL--7L-J|L-7F-JFJJFLJF----JF7F--JLJL7L7FJLJ|L-JLJ|JF|7|-FJ +L-.|..JFJJ|LL-------7|L-JF7F--7F-J|L---J|FJF-7F7FJFJL-7|||||L7FJF-7||L7FJ|LJ7LJL7F7F--JF--JF7||F7L-7F--JF----JLJF7F---J.LJF-7L--7F7L-7JFL-JJ +FL-JF7FJJ.|7F7F----7|||F7||L7FJL--JF-7F7||FJ.||LJFJF7FJ|||||FJL7||LJL7|L7L---7F-J||L--7L--7|||LJL7FJ|F-7|F-----7||L-7F7F77|FJF77|||F7L--7F-. +FLJ77|J7JF--J|L---7LJL-JLJL7||F-7F-JLLJLJLJ-FJL-7|FJ|L7|||||L7FJL--7FJ|FJF7F-J|F7||F-7L7F-J||L-7FJ|7LJ|LJL7F7F7LJ|F7LJLJL-JL-JL7||LJ|F--J7.L +JJ.L7JFFFL--7L----JF7F7F7F7LJ|L7|L---------7L7F-JLJJL7||||||FJ|F7F-JL7||FJ|L7FJ|||||FJFJ|F7||F7|L7|F----7FJ|LJ|F7LJ|F-7F-------JLJJFLJ|J|L-. +||F-|.JLF---JF----7|LJLJLJ|F7L-JL----7F7F-7|FJL-----7|||||||L7||LJF7FJ||L7L-JL7||||||FJFLJ||||||FJ|L---7|L-JF7LJL-7LJL|L--7LF7.F7.L|F|JL|7JF +LL|7|7..L-7F7|F---JL7F----J||F7F-7F-7|||L7LJL7F7F---JLJLJ||L7|||F-JLJFJ|FJF---J|||||||F---J|LJLJL-J|F--JL---J|F-7FJF-7L7F7L-JL7||7JLJJ.FJL7J +|.-L7-77LLLJLJL7F---JL7F-7FJLJLJ-LJFJLJL-J.F-J||L----7LF7LJJLJLJL--7FJ7||L|F7F7|LJ||||L-7F7|F---7F-7L-------7LJ-LJ-|FJJ|||F7F7LJ||.FJ.-JJ|.F +|-J-FJFJ77LF---J|F--7.LJ.LJF7F7F7F-JF7F---7L--J|F---7L-JL-7-F7F----J|F-JL7LJLJLJF-J|LJ|FJ||||F-7|L7L7F7F----JF7F---JL-7LJLJLJL--J7F-F-7LL7-J +|-L-JF7F77JL-7F7|L-7|F7|F7FJLJLJ|L--JLJF--JF--7|L-77|F7F-7|FJLJF-7F7|L7F7L-----7L--J-F7L-JLJLJFJL7L7|||L---7|||L7F7F--J7F7F7JF7F---7-JJ.FJLJ +L-7|LJ-7L-F--J|||F-J|||FJLJF---7|F--7F7|F-7L7FJL-7L7|||L7||L7F7L7|||L7LJL7F-7F7L-7F--JL-7F7F7FJF7L-JLJ|F--7|FJ|FJ||L-7F7|LJL7|LJF7FJJF|.F7FJ +FLF7-L.-..L---JLJL-7|||L-7FJFF-JLJF7LJLJ|FJFJL--7L7||||FJLJ-LJL7|||L-JF7FJ||LJ|F-JL7F--7||LJLJFJL----7|L-7LJ|FJL7|L--J|LJF-7LJF-JLJJ-777.FF7 +LJJL7.-JF7F-7F7FF7FJLJL-7LJF7L-7F-JL--7FJL-JF---J7|||||L-7F7F--J|||-F-J|L7L--7|L7-LLJF7||L---7|F7F---JL-7L--JL--JL7FF7|F-J-|F7L---7.||JF-JJL +.LL-JLJ.|FL7|||FJLJF-7F7L--JL--J|F---7LJF7F7L----7||LJL--J|LJF--JLJFJF7L-JF7FJL7L7F--JLJL----JLJ|L-----7L-7F7F7F-7L-JLJL--7LJL---7|J-F-JJ7.L +77.||L-|7J||LJ|L7F7L7LJL7F-7F7F7|L-77L--JLJL7F---J|L7F7F7JL-7L7F---JFJ|F-7|||F-JFJ|F--7F-----7F7|F-----JF7||LJLJ.|F7F7F---JF7F7||LJJ-|.LF-7. +.7-LL7F|||FJF7L-J|L7|F--J|FJ|LJLJF-JF-----7|LJF--7L-J|||L-7||FJ|F7F7|FJ|.||||L-7L7||F-J|F----J|LJL-----7||LJF7F-7LJLJLJ|F--JLJL--7J|FJLFJ-J7 +F.FLJ||LL7L-JL---J|LJL---JL7|F---JF7L7F---JF77|F-JF7F|||F-JFJL7|||||||FJFJ||L7FJFJLJL7FJL7F7F7|F------7LJL-7|||FJLF7F7F7|F-------J-F77-JJF-| +--7-F-77L|L|FLF----------7-LJL7F--JL-JL----JL7|L--J|FJLJ|F7L--J||LJ||||JL7|L7|L7L-7F-JL7LLJ||||L7F-7F7L-7F7LJLJL--JLJLJLJL7F7F-7F7F||F7FJ.-J +F7J7F-7-FL.|L.L7F7F7F--7FJF7F7LJF-7F7F7F---7FJ|F---JL7F-J|||F-7LJF-J|LJFL||.||FJF7||F7FJF--J|||FJL7LJ|F7LJL--7F7F-7F------J|||FJ||FJLJ|7JF-J +F|-7|-L.|JF7|F-J|||LJF-JL-JLJ|F7L7LJ|||L--7LJFJL7F7FFJL--JL-JFJF-JF7L7-|LLJ-||L7|LJLJ|L7|F-7|LJL7FJF-J|L-7-F7LJLJJ|L-------JLJL7|||F--J|F|7| +L77JF7.7777LFL-7|LJ-FJF--7F-7LJL7L-7LJ|F-7L--JF7LJL-JF7F7F---J|L--JL7|JL.|LJ||J|L--7FJFJLJ7||F-7||-L--JF7L-JL-7F-7|F7F7F7F-----J||||F7.L-LJJ +LL|7-|-|LF-7-.FJL7F-JFJF7LJLL--7|F-JF7LJ7L--7FJL7F---JLJLJJF7F7F77|L||-|FL--LJFJF7FJL-J7LF7LJL7LJ|F----JL-----J|FJLJLJLJ|L------JLJLJ|-F|||J +FJJ|-LL|-L7|FFL--J|F7|FJL-----7||L--JL7LF-7L|L-7|L---------JLJ|||F7.LJJ.F|-||JL7|||F7FF--JL7F7L-7|L--7F-----7F-JL-7F7F-7|F7F-7F-7F7F-J7--7|7 +L-777...FFS|7F7JF7LJLJL------7LJL-----JFJFJFJF-J|F7F7F-7F7F7F7LJLJ|.JJFL-JFJ77||||LJL7L---7LJ|F7LJJF7LJF----J|F---J|LJFJLJLJJLJLLJ|L7J.J.--J +.LF7J..FFL7L7||FJL7-F----77F7L---------JFJFJFJFFJ|LJLJ-||LJ||L7F-7|-J.77FFFJJFFJ|L-7FJFF-7L-7LJL---JL-7|F7F--JL----JF7L7-F7JF----7L-J77JF7.F +J.|L7-|7|||FJ||L-7|FJF--7|FJL-----7F7F7FJ7L-JF7L7L7F7F7|L-7||FJL7LJ-|J|FFJ|L7LL-JJJLJ|FL7L-7|F-7F----7|LJLJF7F------JL-JFJL-JF---JJF7F7J||-| +|F7.J.|LLFJL-J|F7|LJFJF-JLJF-7F7F7LJ||LJFF7F-JL7L7LJLJ||F-JLJL-7L-7J|LJ-L-J7|.LLJ..|L-F-JF7LJ|FJ|F7.FJL----J|L-7F-7F----JF---JJF-7FJLJL777.J +FLL7F|7-FL--7FJ||L-7|FJF7F-J-LJLJL-7||F--JLJF-7L7L7F--JLJF7.||FJF-J-7.L7L--J.|J.F-FL.L|F-JL7FJL-J|L-JF-7F--7|F7LJFJ|F----JF77F7|FJL7F--J7L7J +7J|.F-|.FF--JL-JL--J||FJLJF7F7F7F7FJLJ|F7F-7L7|FJFJL----7|L7.FL7L7.|L..JJ777L7.LF7-L7-LJF7-LJF7FFJF--J7LJF-J||L7FJFJL----7|L-J||L7FJL----7|. +|F7.L7L-FJF7F-7F7F--JLJF--JLJLJLJ|L---J||L7L-JLJ-L7F----J|FJ7.FJFJF|-77|F7L-7|-|||LF|FLFJL---JL7L-JF7F7F7L7FLJLLJ.|F-----J|F--J|FJL7F7F--JJ7 +|LJF.|L-L-JLJ7LJLJF7F-7L7F------7||F---JL-JF--7|F7LJF7F7L|L7-.L-JLFL7|J-LJ7.F7-FJ|7F7F-JF---7F7L---JLJ||L-JF7F7F7FJL---7F7||F--JL-7||LJJ|7LJ +|LL7.J||.FF-----77||L7|FJ|F-----JL-JF----77L-7L7||-FJLJL7|FJFF7|-L7-|JL-7LF7J.L|FJFJ|L-7|F--J|L7F7F--7|L---JLJLJLJF----J|||LJF-7F7LJL7LF|7.| +-77LF-F77LL----7L-JL-J|L7|L7F--7F7F-JF---JF-7L7||L7|F---J||-F7-|.7L-.77L|-J|F-J|L-JFJF7LJL---J7LJLJF7|L---------7FJF--7||||F-JJLJL-7FJ--FJ-L +|JL-7FL-|LF----JF----7|-||FJ|F-J|||F7|F77FJFJFJ||FJ||F7F-JL-J|JL-|7-|-L.|LFLJ.F|F-7L-J|-F7F7F7F7F7FJLJF7F7F7F--7LJFJF7L7|LJL----7F7||JJ-L--J +-7|LL7J.LFL-7F7FJF---JL7LJL-JL--JLJ|LJ|L7L7L7L7||L-JLJLJF7F-7|L7JLJ.LLJ-LJ.-7F-LJLL7F7L7|LJLJLJLJLJF--JLJLJ||F-JF-JFJL7LJF7F7F--J||LJJ....L- +L77.||FJ-J.LLJLJ.L----7L----7F7.F7FJF-JFJ7|FJFJLJF------JLJL||FJJFFJ.||J|FL-F-7-L--LJL7LJF-------7FJF7F7FF-J||F7|F-J.FJF7|LJLJLF7|L7J7F-.F7| +LL--JF-7|JFLF------7F7L----7LJL-J|L-JF7L--JL-JF-7L-7F7F7F--7LJJ--L-7F7-7F|JF|.FF7--JF-JF7|F----7FJ|FJLJL7L--JLJLJL--7L-J|L--7F7|LJFJJL7|.|L7 +L|.|L|L|J-J7L-7F7F7LJL----7L----7L---JL---7F7FJFJF7LJLJLJF7L7JJ-LJ7L7.L|7||F-L7.L7JFL-7|LJL7F-7LJFJL7F-7L-7F7F7F7F--JF-7L7F7LJ||F7L-7.F7.LJ. +.|F77L-J77|LF-J|LJL7F7F-7FJF7F-7L----7F--7|||L7L7|L7F-7F-JL-J.|-JJFJLFJF7J-|FJ77L|FF7FJ|F7J|L7L7FJF-J|FJF7LJ|||||L--7|FJFLJ|F7|||L-7|-7|7.|. +LFLLLJJFF-LJL7FJF77LJLJF||FJLJFJF---7LJF-JLJL-J-LJJ|L7LJF---7F7|.-JJF|-||7-LL|LL-F-JLJFJ||FJFJFLJFL7FJL-JL7|LJ||L7F7LJL77F-J|LJ|L-7LJ.LL|-|7 +.|L||-F|J|J-LLJF||F-----J|L--7L7L--7L-7L7JF7LF7F7F7L-JLFJF-7||L7-|J7FF7|L777.|7||L-7F-JFJ|L-J-F--7|LJ7F---JF-7||JLJ|F-7L7L-7L--JF-JF|F7.F..F +|LFLJF-777JLLF-7||L---7F7L---JFJF-7L-7L7L7||FJ||LJL7F--JFJ-LJL7L-7|FF||L7|F--7J-FF-JL7|L7|F7F7L-7L7F-7L----JFJLJF7LLJ-L-JF7L7F7FJ-LL-7..|-FF +|-J.F|FJF7|.LL7|||F7F7LJL--7F7L7L7|F7L7L-J|||FJ|F-7LJF-7L-7F7FJF-J7-FJ|FJ||F-JJ.FL-7FJF7|LJLJL-7L7|L7L7F---7L---JL-------JL7|||L-77L-..-J-FL +-.L7FJL-JL7-|FJLJLJLJ|FF7F7LJL7L-JLJL-J.F7|LJL7|L7L--JL|F7LJLJFJF7F7L7||FJ||7FL7.LLLJFJLJF--7F7L-JL7L7LJF7-L7F---7F7F---7F-JLJ|F7|7F|F7JJ.J| +L7-FL7F7F7L7FJF-7F--7|FJLJL7F7L---------JLJF-7LJFJF7-F7LJL----J||||L7||||FJ|F7J|||FF7L---JF7LJL-7F7L-JF-JL7FJL-7FLJ|L--7|L7F77LJLJF-7-J-F-.L +FF-LFJ|LJL7LJFJFJ|F-JLJF--7LJL---------7F7FJL|F7L-JL-JL-----7F7FJ|L7||||LJFJ|L-7J-FJL---7FJL7F-7|||F--JF7FJL7F7|F7|L-7FJL-J|L7F7|FJFJJL77J.J +||LFL-J.F-JF7L7L7|L7F7FJF-JF7F7F-----7J|||L7FJ||F-7F7F7F----J||L7|L||||L7FJ7|F7|F7L----7|L7FJL7LJ|LJF--JLJF7LJ|LJL--7|L7|F-JFJ|L7|FJJ--|F-|. +.LFJ-|LFJF7|L7|-LJFJ|||FJF7|||||F---7L7LJ|FJL7|||J||LJLJLF7F7||FJL-J|||FJL7FJ|LJ||7LF7J|L-JL-7L--JF7L----7|L-7L-7F7FJL7L7|F-JFJFJ||F77F|L7L7 +7.-JLL|L-J|L7||F--JFJLJL-JLJLJLJL--7|FJF7LJFFJ||L7|L-7F--JLJLJ||F-7FJ||L-7|L7L7FJL7FJL7L---7FJFF7.|L-7F-7LJF-JF7LJ||F7L7LJL--JFJ.|LJL---77-J +LJJF7-|FL.|FJ||L---JJF7FF7F-7F-7F--JLJFJL--7|FJ|FJ|F7|L7F7F7F7|LJFJL7||F7|L-JFJ|F7|L-7L-7F7||F-JL7L-7LJFJF7L7F|L-7|LJL7|F7F---J-FJF-7F7FJJ.| +.LLJJ.L7F-LJ7LJF7F---JL7||L7|L7|L-----JF7F-JLJ-LJ7LJLJFJ|||LJLJF7L-7||LJ|L7F-JF||LJF-JF7LJLJ|L7F7L-7L-7L-JL7L-JF-JL-7FJLJ|L---7FJFJLLJ||J.F7 +F.FJ.J---J||7F-J|L----7||L-JL-JL--7F7F-J|L------7F7F7-L-J|L-7F-JL--JLJF7|FJL-7FJL7-L--JL---7L7LJL-7|F7L--7FJF--JJF-7LJF-7L----JL7L-7L|LJLLLF +|-7.LJ.|.LL|FL-7|F7F--JLJF7F7F-7F7LJLJF7L----7F7||LJ|F7F-JF-JL------7FJLJL-7FJL7FJF7F7F7JF7L7L7F--JLJL---JL-JF7F7L7L7J|FJ.F7F---JF7L77LJ|.F| +||F-77-777FJJF-JLJLJF7F-7|||LJFJ||F7F7||F7F77||LJ|F-J||L-7L-7F--7-F7|L7F7F7||7|||F|LJLJ|FJ|||FJL----------7F7|LJL-JFJFJL7FJ||F-7FJL-J7J7L7LJ +LFL7||.|-F7JJL------J||FJ|LJLFJFJLJLJLJLJLJL7LJF7||7FJ|F7|F-J|F7L-J|L7LJ||||L7FJL7|F7F-JL7|FJ|7F7F--------J|||F----J|L7FJL7||L7|L--7.J.|FJ.| +F-7J-J-FJFJFF7F7F77F7LJL-JF-7L-JF----------7L7FJLJL7L7||LJL7FLJL--7L7|F-J|||FJ|F-JLJ|L-77||L7|FJ|L--------7|LJL---7F7FJL77|||FJL---J7JFLJF7- +LLJJJ|..FF--JLJLJL-JL-----JFJF7-L---------7|FJL---7L-J|L--7L-7LF7LL7||L-7|||L7||F7F-JF-JFJL-J||FJLF7F7F---J|F-----J|LJF-JFJLJL-7F7JF7F7.L7J| +F|F|F--7-L--7F-7F---7F7F--7L-JL7F----7F7F-J||F-7F7|F-7L-7.L-7|FJL--J||F-J||L7LJLJ|L-7L-7L7F-7|||F7||||L7F77|L-7F7F7|F-JF-JF-7F7LJ|FJ|||77|.| +-7|FL|7L|L7FJL7||F--J|LJF7L---7|L---7||LJF7LJL7LJ||L7L--JF7FJ|L-7F-7LJL--JL7L-7F-JF7L7FJ-LJFJ||LJ||||L7LJL-JF7LJLJLJL--JF-J.||L--J|FJ||LF|-| +LFLJJF--FJFL7FJLJL---JF-JL----J|F7F-JLJF7|L--7|F-J|FJF7F7||L7|F7LJJL--7F-7FJF-J|F-J|FJ|7FF7L7LJF-J||L7L---7FJ|F--7F--7F7L--7LJF---JL-JL7-|F| +|L|77J7.|LF7LJF7F----7L--7F7F-7|||L7F-7|||F--J|L7FJL7|||LJ|.||||F7F--7|L7LJ7L-7LJF-JL7L7FJL7L7FJ-FJ|FJF--7LJFJL-7|L-7||L7F7L--JF7F7F7F-JJJL7 +|FJL-.|7-FJL7L||L---7L7F7||LJFJLJL-J|FJ||||F-7L7|L7FJ||L7FJFJLJLJ|L7FJ|FJ.F---JF-JF7|L7|L-7|.||F7|FJL-JF7L-7L---JL--JLJFJ|L7F--JLJ||LJ.L7JF- +F|FJJ-L7FL-7L-JL---7L7LJ|LJF7L7F----JL-JLJ||FJFJL7|L7||FJ|LL-7F--JFJL-J|F7L---7|F7||F7||F-JL7|||||L-7F7|L--JF--7F7F7F7-L7L7|L----7||JJ-|--|J +LL--J.|J-|-L7F--7F7L-JF7L7FJL-J|FF7F7F7F--J|L7L-7LJFJ|||FJF7FJL7F7L-7F-J|L7F77||||||||||L7F7||LJ||F-J||L--7.|F-J|||||L-7|FJL-----JLJ..FJ.|.F +F7|LLL|7FL7J||F-J|L-7FJL7LJF7F7|FJLJLJLJJF7|FJF-JF-JF||||F||L7FJ||F7|L-7|FJ||FJLJLJ|||||FLJ||L7FJ|L7FJL---JFJL--JLJLJF7||L-7F77FF7J.7F||.FFJ +L--F-7LL-.|JLJ|F-JF-J|F7L-7|LJ||L-----7F7|||L7L-7|F-7||||FJL-J|FJ||LJF-J|L7||L-7F--J|||L7F7|L7|L-JFJL------JF7F------JLJ|F7LJL--JL777-J-F-F. +||.|L-.LL-|-F-J|F-JF7||L--J|F-J|F-----J||||L7|F7||L7||||||F---JL7|L7FJF7L7|||F7||F77|||FJ||L7|L7F-JF7F7F7F-7||L--------7LJL7F----7L7--|-L.|J +FJ7JL|F-|7|LL-7|L--JLJL7F-7|L--JL--7F7FJLJ|FJ||||L7|||||||L--7F7|L7||FJL7|||||||LJ|FJ|||FJL7||FJ|F7|LJ|||L7LJ|F--7F7F7FJ.F7|L---7|FJJFLJ|FLJ +7L7.FF7-FF7LLL||F--7F--J|FJ|F-7F---J||L--7LJ-LJLJFJ||||||L7F-J|LJF||LJF-J|||LJ|L-7|L7||||F-J|||FJ|||F-J|L7L7||L7LLJLJLJF-J|L--7FJ|L7|FJFFLJ7 +||.F--|-7.-J|LLJL-7|L---JL7|L7|L7F-7||F-7L7F-----JFJLJLJ|FJL-7L--7|L-7|F7|||F-JF7||FJ||LJL7FJ|||FJ||L-7L7L7L7L7L---7-F-JF-JF-7|L7L-J-JL||||7 +F|-7.LL7LFLFFJJLF-JL7|F7F7||FJL7LJFJ|||7L-JL---7F7L-7F--J||F7|F--JL7FJ||||||L7FJ||||FJL-7|||FJ||L7|L7FJFJ.|FJJL-7F7L7L7FJF-JFJ|FJJF|-F.LF|J7 +.J-7FL|7.7-LJF-JL--7L7||||LJ|F7|.FJFJ|L----7.F-J|L7FJ|F-7|FJLJL--7FJL7||||||FJL7||LJ|F7FJFJ||FJL-J|FJL-JF-JL---7||L7L-JL-JF7||LJJF7F7-77||.| +JF777.FJ.J-|77J-||FL7LJLJ|F7LJ||FJFJFJF7F-7L7L7FJFJ|JLJFJ||F7F7F-J|F-J||LJ||L7FJ|L7FJ||L7|FJ|L7F7L|L7F--JF-7F7FJ|L7|F-7F--JLJF-7FJLJL-77LF77 +F7|.F7LF-J..7-F--7F7L---7LJL7FJ|L7|-L7|LJ7L7|FJ|FJFJF7FJFJ|||||L-7|L7LLJ|FJ|FJ|FJFJL7||FJLJJL7||L-JFJ|F-7|.|||L7L7|LJFJL---7JL7||F--7FJ-7J|| +L|L77L-F7L7.J|L-7LJL----JF-7|L7L-JL-7|L-7F7LJL7|L7|FJLJFJFJ||||F7|L7L---7|FJL7|L7|F7|||L---7-||L7F7|.LJFJL7LJ|FJ7|L-7L7F7F7L--JLJ|J-LJ.L|7|| +L|.LF7..-F|7JL7.L-------7|FJL-JF7F7FJL-7LJL--7|L7LJL--7|FJFJ|||||L7|F---J|||FJL7|||LJ||F--7|FJ|FJ|||F--JF7L7FJL-7|F7|FJ||||F-7F-7L-7FJ77.L7J +-F-LLJ-FJLL7-7F.F------7LJL7F7FJ|||L--7|F-7F-JL-JF----J|L7|FJ|LJ|FJ|L--7FJL7|F7|||L7FJ|L-7||L7|L7|LJL7F7|L-JL7F-JLJLJL7||||L7||FJF-J-J-FJ-JL +|.L.|7.L7-7|F|7-L-----7L---J|||FJ||F7FJ|L7|L--7JFJF-7F7L7||L7L7||L7|F7FJL7FJ||LJLJFJL7|F7||L7||FJ|F--J||L---7|L---7F7FJ||||FJ||L7L7.JJL|7L7. +JJ.|F|7.F--7FJF7F7F7F7L----7||||FJ||LJFL7||F--JFJFJFJ|L7|||FJFJFJFJ|||L7FJ|L||7F--JF-J||LJ|FJ||L7|L-7FJ|F---JL7F-7LJ||FJ||LJ-LJL|FJ7.-7LLF|J +|F7J7||-J-LLJF|LJLJLJL-----J|||||F|L--7FJ||L--7L-JL|FJFJ|||L-JFJFJFJ|L-JL7L7||FJF7FJF7||F-J|FJL7LJF-J|FJL7F--7|L7|F-JLJ-|||JJ.F-JL7J77J.|LL7 +-FLJLL|||7.LF-L-7F---------7||||L7|F--JL-JL-7FJF---JL7L-J||F--JFJ-L7L---7L7|||L7|||J|LJ|L-7||F7|F7|F7|L-7LJF7||FJ|L----7|L7J.FJF--JF77|-L7|| +L|J.7-L7J--.L-LLLJ7F7F-----J|||L-J|L------7FJ|FJF7F--JF--J||F7FJF7F|F7F7L7||LJL||LJFJF7L7J||LJ|||LJ|||F-JF-JLJ|L7|F7F7FJ|FJ-7L-J|LJJLF-.|LFJ +LJ.L|-LJL7|.|||JJF-JLJF7F--7||L-7FJF7F7F--JL-JL7||L-7JL-7FJ|||L-J|FJ|||L7|LJF--JL7FJFJ|FJFJ|F7LJL-7|LJL-7L-7F-JFJLJLJ|L7||-L|7|.L.|.|L--L-7. +.F-7L-JJ.||.F|..FJF7F7|||F-J||F7||FJ|||L---7-F7LJ|F7L-7FJL7|||F--JL7|||FJ|F7|F-7FJL7L7||FJFJ||F7F-JL-7LFJF-JL-7L--7LFJFJ||77|F|7F7-7F7L7L--. +-7LJ||||7LJ7LL7FL7|LJ|||||F7||||||L7|||F-7FJFJL--J||F-JL7FJLJ||F--7LJ||L7LJ|||FJ|F-JFJ||L7|FJLJLJF-7FJFJFJJF-7L7F7L7|FJLLJ--L-|-7J7F|7|J7|FJ +FJ.LFF7F|7JFJ.F--LJF-J|||||||LJ|||FJ||||-|L7|F-7F7|||JF-JL-7FJLJF-JF7LJLL-7|LJ|FJ|F-J.||FJ|L7F7F-JFJ|FL7|F7|FJ-|||FJ||-|J-|||FJ-LF-7.FJFL77. +F-7-LJ-F----..F-7JFL-7||||||L7FLJ||FJ||L7L-J||FJ|||||FJF--7||F-7L--JL-7F--JL-7|L7||L|-|||FJ-LJ||F-JFJF-JLJLJL-7||LJ7|L-7J7.FJL-F-JFLL|7FLL-7 +F||.J.F|||7|.-77F-L.|||LJ||L7L7F7LJL7|L7L-7FJ|L-J|||||FJF-J|||FJF-7F7FJL--7F7|L-JLJ|.FLJ||F---J||F7L7L7F7F7F7FJ|L7-LL7FJ-F|L-L-J--J7LLJ77L-F +FL-77-F|7-L|7F77.L|-FLJ-FJL7L7LJL--7LJ.L7FJ|FJF--J||||L7L-7|||L7||||LJJ-L-LJLJJJ|LJ7J-JJLJL---7||||FJL||||||LJF|FJ..LLJ7-|.F7-L||7.J7J.LL|-J +|JF--7FJ.|LL7F||7.|J|LL-L7FJFJF-7F7|.FJL||7|L7L---JLJL7L-7||||FJL7|L--7FFL7L7|J.F7J.LFJ|7.LF--J||||L-7LJ|||L7J-||77F|JL7.FL777.--7J-JJFF|.|7 +|F7JL|J.FJ-.F7LJF7JLLJ|F-JL7L7L7LJ|L-7J7||FJFJF-------JF-J|||||F7||F-7L77-LJLJL7|--7-F7|J-7L-7FJ|||F-JLL|||FJJFLJ--JL7JJF-7LJ-7JFLJL|-LJJ--J +-|JFFJ7-LLJ-J-.LL-..LF7L7F7|7L7L7JL--JLF|||FJFJF7F7F7F7L-7|||||||||L7L-J-7|..-7.|-FFJL7..FJ-L||FJ||L-77JLJ||LJ7-JJ||7|7|J.LJLJFJ..|F77-FJL|| +F|F.|-F.FJJ.|.F7.|-F.F7J||LJJ.L7L-7LJJFLLJLJFJFJ|||||||F7|LJLJLJLJL-JJJF|7J|J-|-|.LJ.FL-J77FFJ||FJ|F7||7L-LJ7L7-J.JJ-L|-.F.7LF-7F-FL||.LJ.|7 +L-|-77L7F-7-J-J|.|J.-|L-LJL|7LFJF-J.L-|-JJ-LL-JL||||||||||FJ|7|-J-LJ.|FJJF-L7LF7J7LJF-7FL|7F|FJ||JLJLJ-L.||FFF7L7-J7JL7F|.FJ-L-J7JF7LL77|-F7 +J.F..F-F|LJ77|FJF7..LL7|.JFLF7L7L77F7.|FJ|-LL|JJLJ||||||||JLL-.F||LL-JJF-7|LL.LJFF7F7.|.-F--JL7LJ-JF|||L-7J|J|J-JLF|-|L-L-.JL|J7JL--7J|FL-F7 +.FF7LL7.|-|-7FJ.|JF|.J|J-|F-LJ.L7L7L-.7JF77.||-F|FLJLJ||LJ.F|--J77-LJ-FJ---.|-L7-77FJ-77|L----J-JJ.|7.F|-|.L7L7FJ.F.F7-LLJ7.F--J-F|F|.|7|LJF +.FL|J.|F77J.F---F7-|-7L7|FF.7.-.L-J-L.|LF|L7LJ-F|FJ|.L||LLJF777L77F7J7FJ-LLF77.J-LJJ.L|-F|||JFJFL7.777.L7F.F|J---7LLF7|FJ.FJ7L7JFL7-L-LLJJLL +-77JLFF7|J7.7||F|J-J.FLL7.77.7.|JLJ|.F|-FF---JJJLJ.F7FLJ-.|FJ---77-L7-J.7||LJ7F-F-.F-.|L-7-JJF.7-FF||-|FJJ-LJ|JF77JJ|F7.|77F--J-L-J|.F|7LJF7 +FLF--7L-J7|-LL|-|J.J7--JF|77F|.FJLFJ.L|-FJ7.|F7-|7.7.LJJFF.JJJFL.|||FJ|-L--7JF--|FFF|---7J|LF-JJF--7--JL.L7.L|.|L|JLF7JF7-FJ|.F.F|.J.-7J|F-7 +F7|-FJ|L|-J7.F--F7|FJF|7L|||F77J-FFFL7.F|J|F-FJ|.F.--------|.|F.---7L-LF|-L7L7JL|L7.|.|7F-J.JJ.--|7|||.JF-F7|L|.|.|.FL-7L|L|7..|7-|.|LJ||7FL +LJJJ||L-J7LJ7F|-LLJ|7L--7L-J-.|F--FJ.|7LL.|L--7-7L7|L||-7JJL-JJLLJFF7J.LL77..J.F|.|7LF---J.FL.JLF|LJJ-F-F..F--|.77F7-JJL77.||.|F7.LFL77|J7FJ +LJJ..LL-JJ-L---7J-F77LL.LFJJLL-J-7JJ.L-LL7-L7.LLJL|JJF7-J-JLLJLLJ-7LJJ..LLJ-LJJ.LFL-FJJL|.FLLF-FL|LL.J.FL|-JJ.JJL--JLL--JJ.|J-L|J--J.L7..JJJ + diff --git a/2023/_input/day_11.txt b/2023/_input/day_11.txt new file mode 100644 index 0000000..441419a --- /dev/null +++ b/2023/_input/day_11.txt @@ -0,0 +1,141 @@ +...........................#...................#...........................................................................................# +.................................#..................................................#.................#............#......#................. +.......................#..................#...............#............#..........................................................#......... +..........#........................................#........................#............#.....#..............#.........................#... +............................................................................................................................................ +.....#..........#..............#.......#.......................................................................................#............ +.................................................................#...................#..............................#....................... +............................................#..............#...............................................................#................ +.........................#..................................................................#..............#................................ +#..................#..............#......................................................................................................... +...................................................#.........................#........................................#....................# +.............#...........................#...............................................#.................................................. +...........................#...........................#.......................................#............................................ +......................#..............#..........................#...................................#..............................#........ +........................................................................................................................................#... +...#................................................................................#....................................................... +.....................................................#....................#.................................#..............#................ +..............................................#...................................................#..................#...................... +.............#.............#...................................#.....................................................................#...... +..................#......................................................................#...............#.................................. +...........................................................................................................................................# +......................#.....................#......................................#.............................#.............#............ +....#.............................................#.............................................#........................................... +............#....................#.............................................#............................................................ +#.............................................................#.......#..................................................................#.. +...........................#.............................................................#...............#.................................. +......#..................................................#........................................#......................#......#........... +...................................................................#.................#...............................................#...... +......................#.........#........................................................................................................... +...............................................................................................#............................#............... +........#.......#............................................................#...............................#........#....................# +............................................................................................................................................ +....................................#....................................................................................................... +............................................#.........................#..................................................................... +.#...............................................#..........#....................................................................#.......... +................................#.................................#......................................#........#......................... +...............#.........................#...........#.......................#.....#..............#....................#.................... +............................................................................................................................................ +.....#.................#......................................................................................#............................. +...............................................#...............#...........................................................................# +.................#..................#......................................#..............#..............................#.................. +...........................................#........................#............................................#.......................... +..#......................................................#......................................#...............................#.......#... +.......#............................................................................#....................................................... +...............................#..................#..........................................................#..............#............... +.....................#................................................#..................................................................... +...............#................................................#........................................#.................................. +...................................#...................................................#.................................................... +...........................................#..............................#..........................#...............#...............#...... +..............................#.................................................................................#.............#............. +.........#.............#.................................#.................................................................................. +......................................#..............................#.....................................#...............................# +.................................#.......................................................................................................... +...............#...............................................................................#..................................#......... +..................................................................#......................................................#.................. +#............................................#..........#...............#...........#....................................................... +.......................................................................................................#.................................... +............................................................................................................................................ +............................................................#..............#.....................#..........#.............................#. +......#.........................#..........................................................................................#................ +............#...........#............................................................#......#........................#................#..... +........................................#............#..............#....................................................................... +...#........................................................................................................................................ +............................................................................................................................................ +................#................................#...............#......#................................................................... +............................................................................................................................................ +............#.................#............#...............#................#..............................................................# +#.......................#............................................................................................................#...... +..................................#.........................................................#..............................#................ +......#..........................................................................................................................#.......... +............................#.................#.......................#..................................#.................................. +...............#....................................................................................................#.....................#. +............................................................................................................................................ +.........#.............................#.........#................#........#........#....................................................... +...................#...............................................................................#........................................ +.........................................................#.....................................................#............................ +.#..........................................................................................#................................#..........#... +.............................................#......................#..................................................#.................... +..........#..........................................................................#...................................................... +...........................#......................................................................#......................................... +.................#........................................#................................................................................. +.........................................................................#..............#..........................#.................#...... +.................................................................#....................................#..................................... +...#.................................#.......................................................................#..............#............... +............#.............#........................#........................................................................................ +....................................................................#..........................#............................................ +.............................................#....................................#.......................#.....#..............#............ +.....................#............#..........................................#.............................................................# +............................................................................................................................................ +..........#....................................................#........................#...................................#............... +#........................................................................#........................#......................................... +................................................#.........#..............................................#.....#......#..........#.......... +..............#.....#....................................................................................................................... +..............................#.............................................#.......#........#.......#...................................#.. +....................................................#....................................................................................... +.............................................................#.............................................................................. +.....#........................................#........................................#.............................................#...... +............................#............................................................................................................... +.......................#...............................#.................................................#.................................. +...........#........................#........................................................#.............................#................ +...........................................................#......#......#...........................#...................................... +#......#..........#............................#.....................................#...................................................#.. +..............................#................................................#...............................#............................ +.....................................................................#...................................................................... +........................................#................................................................................................... +.....................................................#..........#.......................................................#..................# +.......................#...................................................................#.................#................#............. +#...........................#..............#..............................#................................................................. +............................................................................................................................................ +........................................................................................................#................................... +............#.....#...............#.....................#.........................................................#...................#..... +..............................................................#............................................................................# +.................................................#...................................#......#............................#.................. +......................................................................................................#..................................... +...#.........................#.....................................#...........#................................................#........... +................#..............................................................................#.............#.............................. +......................................#....................................#..............................................................#. +.........#...............................................#.................................................................................. +.......................#........................#....................#......................#...............................#.....#......... +..........................................#............................................................................................#.... +......#.....#.....................#..............................#.....................#.................................................... +....................................................#....................................................................................... +.#......................................................................................................................#................... +..................#........#................#...............#.............................#................................................. +..........#........................................................................#..............#...........#.....#....................... +.....................................................................#...................................................................... +...#.....................................#.....#...........................#..................#............................................. +............................................................................................................................................ +.....................................#.................................................................#...................#.......#........ +.......................#........................................#...................#....................................................... +.....#............#..........#.............................................................................................................. +#.................................................................................................#.............#..............#............ +.........#.......................#.......................................................................................................... +..................................................................#........................................#................................ +......................#..............................#.....#...........#.................................................................... +...........................................#..........................................#...............................................#..... +...............................................................................................................#............................ +.............................#..................#............................................#.......................#............#......... +................#..............................................................#.....................#...................................... +.......#............................#...................#............#...................................................#.................. + diff --git a/2023/_input/day_12.txt b/2023/_input/day_12.txt new file mode 100644 index 0000000..566b1d0 --- /dev/null +++ b/2023/_input/day_12.txt @@ -0,0 +1,1001 @@ +##???#??#?????????#? 11,6 +???.#??#.??? 1,1,2,1 +#????#?.???????. 3,3,4 +.#?????####.?.#? 1,1,5,1 +?#?????????#?#? 3,2,1,1,1 +.?#??.?..#. 4,1 +??.??????????.? 1,1,3,1,1 +?#???..??.?????##??# 1,1,1,3,6 +#?.?#????#?#.. 2,8 +..#??????. 3,1 +?#?????#.??# 7,2 +??#?????#.?#?##???? 3,4,5,1,1 +???????#??? 6,1 +#..?#?##??????.#?#? 1,6,1,3 +???#..??#? 1,1,2 +???#?.#?#.??.?? 3,3,1 +?#???.?..# 2,1,1 +#??#?????##?.???? 4,3,1 +#?????????.??#?. 2,4,2,2 +?#?????#???#??? 2,4,3 +?.??.??#??? 2,1,2 +??#???.??##?#.? 4,5 +?.#?.#???##???.#?# 1,2,2,5,3 +????????#?#???? 2,1,6 +.??.?#?..#. 1,3,1 +.????.??.??#.#. 3,2,1,1 +??.?#??????##?#??.?? 1,13,2 +????#??.???#??. 1,2,4,1 +??#??????###?#.#? 1,1,9,2 +??#?..##???#???.?#? 1,9,2 +?#???#??#?# 5,1,1 +?#??#.????????? 1,2,1,4 +.?????#??#?#????. 1,10 +?.???#?#?#? 1,6 +????#???#????? 2,8 +#?#???????.?.?? 7,1 +??.??#????##?#?##.? 3,7 +?????#?#?.????#?#? 2,4,7 +?.????#?###?#?? 1,8 +?.??????#.????#?##.? 7,1,5 +.???#???.?? 1,3,2 +?#.?..????? 2,2 +..?????...?????? 4,3 +???#.???.??????? 1,1,1,4,1 +?###???????#?..?? 7,1 +.???????#???????#?? 1,1,10 +#??.??##?#??.## 2,6,1,2 +??#???.??#????#?? 2,8,1 +?.?#.???#?????? 1,9 +???#??##?????. 8,1 +#??#?#?????###?? 1,5,4 +?..#??????? 1,5 +###??##?...??#?# 7,5 +?#?#??#.??## 6,3 +.????.?.??# 1,1,2 +???.?.??#??#??? 1,9 +.????..#??? 1,3 +??????..?? 1,1,1 +?.????##??#? 1,8 +????##???#.. 5,3 +??#?????#???# 2,1,2,2 +#??????????#.?##?.?# 6,1,1,1,3,1 +.?#??##????. 5,1 +?????.???#??#??##? 4,8,3 +????#?#??#?? 1,4,4 +?.?#??#??..????# 1,7,1,3 +?.?.??#????.?# 1,5,1 +?#??..?.??????# 3,1,1,1,2 +?##?#???#??.???? 4,4,3 +???#?????#?????????? 13,1,1,1 +????#?.???????#? 3,2,2,5 +?.#??#.??#?????? 4,4,2,1 +.?#?#####..?.?.?. 7,1 +##????.?#????. 4,5 +????????#????????. 2,1,4,1,2 +????.??#???..? 1,1,5 +#????.?..?#? 2,1,2 +??????#???? 2,1,5 +??#??.???? 1,3,1 +?#??#??##?.????#?.? 2,7,5 +???????.??? 4,1,1 +.?##????#??? 3,4 +???.?#.?.??.. 2,2,1,2 +????.???????. 1,7 +?#?#.?#????#? 3,1,1,1 +??#?????##??.#.??? 1,6,1,3 +?????????.?###?#. 2,1,1,2,6 +?#.##????#????#.??? 2,2,1,7,1 +#??#.?????#??. 4,5 +?#??#..?????#?#??#? 2,1,1,8 +##?.?.?#?.#?????? 2,1,2,7 +.???.???....#??# 1,2,2,1 +??#??#????##?????.? 7,8 +..?????.?. 1,1 +???????#?#??????.. 1,7 +#?????????#??..?? 1,3,1,5,1 +???.??#??.. 3,2 +???.#?#????????? 1,1,1,9 +?.?#??#??.?#. 6,1 +????#?#????.#??..? 7,1,1,1,1,1 +???..#?.#???? 1,1,3,1 +??.??...??? 1,1,1 +.##??????..#? 4,3,1 +????.??.???###??. 1,1,1,1,5 +?..??????.?? 5,1 +???????#??.?. 3,4,1,1 +#????##?.??#?.? 1,3,3 +??.?#?##?#?????????? 2,13 +????#??#?##??. 1,9 +????.???#??.. 3,3 +??#?#??#?? 3,1,1 +?#?##??.????#???? 4,2,4,1 +.??#???#???#??????#? 2,13 +?.?#.?..?#??#??#???? 2,1,8 +????.?###???#.?. 1,7 +..#?????????#???? 1,2,5 +???????.?#..? 6,1 +.#???###????.? 1,6,1 +??.??###?????#???.. 6,7 +#?..#??###???.?? 2,1,7,2 +???.??#?#??#?##?? 1,12 +#???????#?????#??#?. 1,1,10,2 +.????###???.???? 10,3 +??#?.?.#??? 3,3 +?##?????.#?? 4,1,2 +??#??.??.????##? 3,1,4 +???#####??.? 7,1 +#?##??#??#.????? 8,1,3 +.#.??#.????? 1,1,1,1 +??#??.???.#? 2,1,1 +???.????????????#??? 1,10,3 +.?.##????? 1,2,2 +?.##??#???#???.?#??. 11,4 +?????#?????##????.#? 13,1,2 +.???#?.??? 4,2 +?#?#????#?.. 5,3 +.???#?????#?#? 3,3,2 +..??.???#.????.. 4,1,1 +????????????. 1,2,1,1 +??????##..?. 1,1,1,2 +?.????#????.?????? 1,1,3,1,3 +?#???##??#???#? 8,2,2 +??...???????#?# 1,2,4 +??????#????#? 7,2 +???.#..??.?#?.#???? 2,1,1,3,2,1 +?#???###?#? 1,5 +????????????? 1,1,5,2 +.?.??#?#????????#?? 1,5,8 +.????#???.#??#?#?#.? 4,8 +?#?.????.###??? 1,4,3,1 +?##.???#?????#? 2,11 +?.??###.?.?##?##?#?? 4,8 +???##????????? 1,5,1,2 +##.????#...?#? 2,2,2,2 +.?#??????.? 1,5 +..?#?????.#??#. 3,4 +?.???.????#? 2,1,2 +.????????????#?#???? 5,11 +.???#????###????#??? 12,4 +???#??.???????? 1,1,6 +#??#.?#??.????# 1,2,4,1,1 +.?.??.???#?.??#?? 5,4 +??#?#.????.? 3,1,1 +????..???##?#????#. 1,1,8,2 +?#??.????? 2,2,1 +???#?###.?#???????.# 1,5,9,1 +#????##?#??##? 1,4,5 +?#??##.???.??? 5,1,2 +.???####?????? 7,1,2 +?##?????.#.?#####??? 4,2,1,7,1 +???##...??? 3,1 +????#????#??##???? 10,6 +???#?????????? 1,10 +#?????#?#?#??????.?? 9,1,1,1,1,1 +?????#??#?. 1,4 +????#??#?? 1,1,5 +?#?###???????#??#? 1,5,8 +???#???.??????. 3,5 +?##...#?#..?. 2,3 +???#???#.?#??#?###.# 1,5,9,1 +?.##?#??#??. 1,5,1,1 +??#?#????????#??#??? 2,1,2,7,1 +????##??##?????. 10,1 +?.?????????.???? 4,1 +.???????.# 2,1,1 +.??##??##?.?? 5,3 +??????.?.??.?#?# 3,2,1,1,1 +#?.?.#??#?#??#????? 2,1,13 +??.#.??###?? 1,1,1,4 +.??####???#?## 6,5 +??.??##????????? 2,2,2,3 +..?.###?##??????? 7,1 +??????????.? 2,4,1 +?.#.?.?.??. 1,2 +????????#.?..?? 1,5,2 +??.#??#?#??#? 1,7 +?...???#??????.? 1,1,6,1,1 +#????????#???#. 3,1,1,2,3 +#????#??.??? 3,1,1,1 +#??#?#.???#?##???.?? 6,5 +?.?.?#????#????#### 1,1,2,1,3,5 +????.????????.?? 1,1,7,1 +?##?.????.???? 3,2 +.??#.???#???####??. 3,1,9 +??#.???.##? 1,1,2 +.??##??????#?.? 1,3,4 +??.?#?#???#??#? 2,1,1,3,1 +?#?#??.?.??????.#?? 5,1,5,1,1 +???.?????##??##?? 1,1,1,7,1 +..#?.??????#? 1,2,3 +????#???##???..?#?# 2,10,4 +#???#?#?.?????.#.. 7,3,1 +.##???#???. 2,4 +?.#???????#?##? 3,2,4 +?#??#????.##????? 5,2,2,2 +.#?#?#.?#?#?##???? 3,1,7,2 +????????#????.?#?? 1,2,7,2,1 +.?#####???..??? 7,1 +???????#?? 1,1,2 +??#?.????#? 4,1 +????.??????#. 1,4,1 +???????#?? 2,5 +?????#?.?.??#? 3,1,1,1 +.?...????#? 1,1,2 +?#?????.??#. 1,1,1,3 +??#?#???#??. 4,1 +?????..???. 2,2,1 +.??.?.#?.????#??#?# 1,1,10 +.????#???#?? 5,1,3 +?#??#??????????. 9,1 +#??.?????#?#???? 3,2,7 +?#.?????????#? 1,1,4,1 +.????#??#?.#. 5,1 +???????##??.# 1,1,5,1 +?##?#??.??#????#?? 6,3,4 +?##???????##? 3,1,1,4 +#??????#.?? 8,1 +#????#??????#??# 1,1,1,5,1 +?.??.#????#????. 1,1,1,7 +..?##??###?#???????. 9,4 +??.??#?.??##???? 1,3,8 +???##..?.?? 2,2 +.?#???#??######?? 1,3,7 +.????.#?#?#??. 1,6 +??##???#???#?????# 4,3,2,1,2 +??.?????????? 2,1 +????#????????.#??? 4,1,2,1,2 +?#?#???.?..?????.? 4,2,1 +.#???#.??.?#?##??? 1,3,1,6 +??????#??# 3,2,1 +?.#.??.??#?#?##? 1,1,1,1,7 +?##????##??.? 4,5 +???.?#?.?? 1,1,1 +????#.??#?.??#?#.? 1,3,1,3,1 +?????#?#?.?????#? 1,2,1,1,3 +???.??????? 2,2,2 +?#?#??.?#?#?? 5,5 +??????????##?#? 1,1,7,1 +?????#.??????? 2,3,2,2 +?#????#?#? 1,5 +?.?#????..??#?... 5,4 +..#???#??? 1,1,3 +.#?#.?#?##??????? 1,1,4,1,2 +?##?.#?#???# 3,3,1 +?????#???? 2,5 +???#???##. 1,1,3 +??##???.#.??? 6,1,1,1 +????.??..? 4,1,1 +????.???#? 2,1,4 +?#??.???.??#????? 2,2,8 +????????##??#? 1,1,5 +?????#???. 1,1,1 +##.???.##. 2,2 +?#?.???#?????.? 2,4,1 +?????..?.??##???? 5,1,3,1 +#?#?..?????#???? 1,1,6,2 +..#????#???##?.?..#? 1,1,8,1,1 +?.?..?#??#??#??. 2,6 +.???###?#??? 1,5,1 +???.?#??#??##? 1,9 +???#?????##??.??#. 12,3 +##???????#?#? 3,3,3 +???..?#?##? 3,5 +??..??.???#??.. 2,4 +???.????..???#.????. 1,3 +???##...?.???? 3,1 +??????#?.?#.??? 2,4,1,1 +???????#.#?. 1,1,2,1 +?????##????? 1,4,1 +?####.?????#? 4,2,3 +?#.#????#..? 1,1,3 +..??#??.?#?#????? 4,6 +?###????#???####?.?. 9,5,1 +?###??#???.?.?? 10,1 +?.???#?#??#?????? 1,1,2,4,1 +.???.?????? 1,3,1 +??????#????##?.#?.?. 10,3,2,1 +.??.?.?##???#???# 1,1,6,3 +??#??????#.#?.##?#?? 9,1,4 +????.?#?#???#????.#? 3,1,2,1,3,1 +?????##?????.?# 1,1,7,2 +??????.#?????#? 1,1,1,4,1 +.?#??????#.?.. 1,4 +??????.#??. 4,1,1 +?????????#?#?? 2,6 +?.#???????#?????#??? 10,1,2 +???????#??. 1,2 +?##???????.#???# 6,2,1,1,1 +.???#?##?#?????.??? 2,6,1,1,1,1 +.??????#??? 2,3 +#???????#??.?##? 1,8,4 +.#.??##??.?? 1,3,1,1 +???..#??..?? 3,1,1,2 +?????????#????#??? 2,12 +?????.###..##?? 4,3,4 +???.?????#??#??#??## 1,16 +?????#??###? 2,1,5 +##????????#??.?? 12,1 +?.??.#?#?????#?###?? 1,5,5,1 +.???.???#?#????####? 2,1,9 +..???#??????#??. 2,7 +??.#?#??#??.?.#?#.? 2,8,3,1 +??.???#???## 1,6,2 +.????.??#??.#??#. 4,4 +???.???##?? 2,1,2 +??.???#?#??.#?????#? 1,5,8 +????.??#?..????? 3,1 +???##????? 1,5 +???#??.??????#??. 5,7 +??#??..??? 3,1 +???.??#???????#??#? 2,1,3,5,1 +???#??????#???.#?? 11,2 +??.#?#?#???.#???#?? 1,3,3,3,1,1 +?#..??.???#??. 1,5 +?.?#..?#?#???#? 2,8 +#?????#.????? 2,3,1 +#?#??#???##????.? 14,1 +??????.??????#? 2,1,1,1,2 +??#???????.??? 8,1 +??.???.#??##.???##?? 1,2,1,3,1,5 +??.????#.#.?# 1,4,1,1 +?.???.??##.. 1,1,1,2 +#????????????? 3,1,4,1 +??????#?#. 1,6 +??#?#..??#????? 3,1,6 +???#???????#??????? 1,1,1,1,5,1 +??#??#?#?###..???? 11,1,1 +???#?##?##?. 2,1,2,3 +??.??#?????????##??? 1,1,1,1,1,6 +??#????##?#.? 2,5 +.?????#.????. 2,1,1,1 +.?.?.##?????####?? 1,11 +?.#?#?#.?# 3,1,1 +#??#?#?????.#? 1,8,1 +?????#.?#?#?##??.? 1,1,1,9 +?????????#???? 3,2,1,4 +?#?#.?.?.. 4,1,1 +.#.?##?????? 1,3,1 +.?#?#?#?????.? 7,1,1 +??????..??..?#????. 3,5 +#???.?.?????# 1,1,1,6 +???????#??##??????# 1,2,12 +??#???#??..?.???#? 2,4,1,1,1 +#?#?????##??##?#??# 1,14,1 +..?#???#??#?? 6,1 +.???????????. 1,3,1 +????????#??.#?.?? 8,2 +??.??..?.#.??#?.? 1,1,1,1,4 +.?#???##????. 3,4,2 +?????#????.? 5,1 +?#??#.????#??##.? 5,1,4,2 +??.#???#?#.??.??? 1,7,1,2 +?.????#?##????? 1,1,6,1,1 +.????##?#..?.?? 2,4 +?#??????#.??.?????? 2,4,1,1,1,1 +??#??#?#??.?#?#.. 7,4 +??.?#???.. 1,1,1 +???##?#?????##?##??# 10,8 +?#.##???##.??#? 1,3,2,1 +?##?#.???? 2,1,3 +.???##??#??? 1,8 +????#??.?????. 1,4,3 +.???.????.#? 1,1,1,2 +??##?#????#????#.#.# 1,10,1,1,1 +?????#?.????#??? 3,4 +?#??#??#????#?? 3,4,3 +??.??#..?? 1,1,1 +?#??#??#????.? 1,8,1 +?#??#???????## 1,4,3 +??#.???????.?.#???# 1,1,2,3,1,5 +???.???#?.??????#?#. 3,3,1,1,3 +#??#??##?#???#??# 1,1,7,1,2 +#?##.????.?? 4,2,1 +?##???.?#????#? 5,8 +.???#?##????. 1,8 +????????.? 3,1 +??.??..????.????? 2,1,2,1,2 +???#?????#..?. 4,1,1,1 +?.?##?#??#??#?? 5,6 +???????##???#??? 2,10 +#.??.#?..????? 1,2,3 +??##.#??.? 2,1,1 +?.#?#?#?.?#??#????#? 6,6,3 +?.?????????#??#?# 1,10 +?????????#? 1,5,2 +??#?..?##??#? 3,5 +??#?#???????.#.?..## 6,1,1,1,2 +.?????#?#. 1,2,1 +.?#.#.?????#? 1,1,1,5 +#??#?.?..###?????? 4,1,9 +.#?.?#?????#? 1,2,1,1 +?##????.???????.# 6,3,1 +#.?????#????#.? 1,1,1,6,1 +?..??#.???.#??.. 2,1 +????#?.##????? 3,3 +??#??#?.?????? 5,1 +.#.##.???.?#???#?.?# 1,2,1,1,6,2 +???#?##?.??????????# 7,9 +???.?#???? 3,5 +??.?#?.???.???? 2,3,1,2,1 +?##??#?#??#????.? 8,5 +#..#?#??.?.???##?? 1,3,1,1,1,5 +?????????#?#?#? 3,1,1,3,2 +.????.?.?#?.???##?. 2,3,3 +??#?#?.?????..??#?.. 4,1,2,4 +..?#?#???.????.??#. 6,1,1,1 +?##???????.? 9,1 +#?.????.#??##????? 1,2,1,7,2 +.#.?#?.?.?#.. 1,2,1,1 +??.?????.?? 1,2,1 +.#??????.?# 1,4,1 +.???????????#??.. 5,1,2,1 +?..#????.??? 4,1 +.#?#?????? 1,7 +.????????##?? 2,2 +?#????##????.? 7,1 +..?#??..??#?...?#. 2,3,2 +?#??#.#???.??.?#? 1,2,2,1,2 +??#??###.? 2,3 +???#??#???. 1,1,4 +??#?##?.?.???????#?. 5,1,1,5 +???????????..?? 2,1,1,1,1 +????.?#????##??#??? 1,2,4,2,2 +???#???#?#?.???# 1,1,6,1,2 +???.??..?????? 2,1,4 +.?????##????????? 1,7,3,1 +?#??.????#?#?#???? 3,7 +?.?#??#?#??????.??? 11,1 +?.?#.??#???# 1,1,7 +?#?????#??.. 2,3 +.?????#???????? 2,5,4 +??.?##??.#?? 1,3,2 +???##????#.?? 1,3,1,2 +#?##?.?.?????????? 1,2,3,1 +.??.????.? 2,4,1 +#.?.??.???#? 1,1,1,1 +?.#????#????.?? 6,2 +??##.????### 3,5 +?.?????#???.#.???? 1,7,1,1,1,1 +.?????????#???#?? 6,5 +.?.??#???.???? 1,1,2 +.??.????#????.?#??? 2,8,2,1 +??..???..?#.# 1,2,1,1 +.??#???#??? 3,3 +???##?????????.? 2,5,1,2,1 +???.?##?#?#????#?.?? 1,2,1,7,1 +.??.?#.?#??????..??? 1,2,2,5,1 +????#????. 2,1,1 +?#???#?.?#?.???# 2,2,3,4 +??????.????... 4,2 +.??#?????#???? 8,1 +#??????#???? 2,2,5 +?#???????.??###?..#? 3,1,1,1,4,1 +?#??#?..??.??.? 1,2,1,2,1 +#????????????# 1,2,1,6 +?#?.?????.???##??. 1,1,1,1,6 +????#??.???? 4,2 +????????#???.#?# 4,1,1,2,3 +?##??????.????.?.??? 6,1,3,1,1,1 +??#?#??#??? 5,1,1 +??##???##???#? 2,6 +.?#?#?...?#? 1,2,3 +??????#????###??? 5,7 +?..????.????.?#. 3,3,2 +???????#?? 6,1 +???.????#?. 3,1,3 +#?..???.?##? 1,1,1,4 +??#????????? 2,1,1,1 +????##????#??? 4,5 +.??#?#.??.?????????? 5,3 +...#????#???? 2,2 +#??#???#..??? 1,6,1,1 +?#??????#????.?#.??? 1,3,3,1,1,3 +????#?#?#?#??..#?.? 10,2 +#?????.?.??#?#??# 1,2,1,1,6 +????#????????????? 3,1,1,2,1,4 +#.?????#????? 1,1,2,2 +?.##?????????? 1,2,2,5 +.?#???##???. 6,2 +.#??#??????.???## 1,7,1,2 +.??.?????#??.?. 1,2,5,1 +??#??###??#.??? 2,5,1,1 +#?.#.#??????#. 1,1,8 +???????##??#?? 2,7 +???#???##?..?? 4,2,2 +?##??#??#??..????. 11,1 +???##??????#?? 1,4,1,2 +.??.???##??#??.??.? 1,1,7,1 +#?#?#?##???.???.??.? 11,1,1 +???..?###?#??#??...# 3,11,1 +?.???.????#??? 1,1,5,1 +#??.?####????#???? 3,11 +#??.???????? 1,3,1 +?#?#?#?.?.#???? 6,5 +..?#?###..#.? 6,1 +??#.???.?#? 2,3,3 +??#??????#????? 4,5,3 +??.?????##???????? 1,14 +.?.??#?..??#.? 1,3,2 +??????.????.#. 5,3,1 +.???????.??#??????? 1,1,1,10 +???..??.?#??.#?? 1,2,2,1 +??#???#????#? 1,6,3 +???#.#???.?#?#?#?## 3,1,2,9 +?##??.?#??.???..# 3,3,2,1 +????#???????#?##?# 1,1,1,2,6,1 +#.??#??????? 1,4,1,1 +##??#??#?.###?#??#?? 8,8 +?##?????????????? 7,3 +##??????#####? 5,5 +#???#??..#?#?.? 2,1,1,1,2 +.?????..????#?? 2,1,3 +.?#???##??#??. 7,2 +???#?##?.? 1,4,1 +.?.#.?????#?????#? 1,1,3,2,2 +.##??????#??????# 4,1,2,1,3 +??.?.??##?????? 1,10 +.#?#.?#?.??#?#??.?? 3,3,3,1,1 +??##?.???####. 5,6 +.??##?.#?#?#.?? 3,5 +?.?.?#??????#???#??? 3,7 +??????#????... 1,1,1,1 +?#.?#?????????.?? 1,2,1,5,1 +????###??.#??##.??? 1,5,5,3 +.?????.#?????.????? 1,1,5,4 +.??..??#?.?? 1,4,1 +?#?.?#??##?#?#.? 1,2,6 +.#..???.?.#? 1,1,1,1 +?##?????????#???#??? 4,5,2,4 +??#??#?????#?#. 1,1,4,1,1 +#?.?#???###??#??.# 2,2,8,1 +#??.??##.?????.?# 3,4,5,1 +?..#????#????????? 1,1,4,2,3 +.#?????????#.?.?? 3,4,2,1,1 +?#?#??#?.#???# 4,1,1,3 +.??????????.# 3,6,1 +???????????? 8,1 +??????#??.??#??? 5,1,4 +?????.#??.?. 2,1,3,1 +#???##??????????#?? 1,3,1,5,2 +??#.??#???? 2,1,5 +????##????????.#???? 9,1 +?????..????#? 2,5 +?#?#?.?.??#?##? 1,2,1,7 +.#?????????? 1,1,1,1 +?#???.?#..? 4,2 +.#?.#??.????..???? 2,1,1,1,1,2 +.?##??#.???#???.?#? 3,2,4,1,1 +?.?#?#???#? 4,1 +..?..??#??#???? 1,6,2 +.??#????#?#. 3,4 +??#?#.#.???????.??## 5,1,1,4,4 +??.???????# 1,1,1 +..???#?#.??.?#.?#.# 6,1,1,1,1 +?????##??#??.? 1,3,2 +?##??#?#?##?????? 11,3 +#?#???#?????.????? 1,1,4,1,1,1 +?????..??????????#? 2,2,1,1,8 +?????###???##??? 9,4 +?????#??##???.? 1,1,1,5,1 +##?.?????##?#?##. 2,1,9 +???#?..??#????#?#?. 3,8 +???#?#???#.? 6,1 +?..??#??.. 1,3 +??????#?##.#??? 1,1,4,1,1 +???????#????.????## 6,1,1,2 +???.??..#.?.??????.? 1,1,1,1,6,1 +?.???..?#??.??###. 1,1,1,2,1,3 +?.##???????#?. 6,1,1 +?????..#.?#????#? 4,1,3,3 +?.??##??##??????? 12,1 +????.?#?##???. 1,1,8 +??###????#??.?#?.?? 7,1,1,2 +###???##????? 3,4 +.?.??##?#?#???????? 1,1,4,9 +#.????###?.#. 1,7,1 +.?#??.?????? 1,1,2,1 +?#..?????? 1,4 +?#??.????#?.?.??? 2,2,2,1 +.#???#?..?? 2,1,1 +.??????#.?##?.?.#??? 4,2,2,3 +???###?#???????.?# 1,6,6,1 +.??????#..#??.#??. 1,5,3,1 +???.?????? 2,1 +????????#?#.?????##? 2,1,3,1,4 +?.?#?#?#?????.???.?? 8,1 +##.??#?#???##??????? 2,5,3,1,2 +??#?#??#???.???? 7,4 +??.??###????#?.? 1,1,8 +????#???.???#?#???? 8,1,3,1,1 +.????.??.???##?# 1,1,2,1,4 +????##??????? 1,5,1,2 +.?#..?##?#? 1,5 +??????#???#???#?? 2,9 +?#?#???#???.?????? 1,3,4,1,1,2 +..???#?..?.? 5,1 +?##??.???##?????? 4,3,2,1 +???#??#?##?.? 9,1 +.???##?#???????#? 5,9 +?#.?#?#?????????.?.? 2,4,3,2,1 +.#.??????# 1,4,2 +#???????###????? 6,4,1,1 +???#?#?..? 4,1 +??.?##.????.#?? 1,2,1,1,1 +.????#??????#?? 1,4,4 +????.?????????.? 2,7 +#??.##????##??##???? 2,2,1,3,5,1 +??#??##..???.#??##?? 2,2,1,1,6 +????.??.#.?# 3,1,1,2 +?#.?.?#?.? 1,1,1 +.?.???#?.?????..?.?? 3,4,1 +..##???.???.#? 5,2,1 +?.?#???#?#. 2,1,3 +#????#????????.# 1,1,1,7,1 +??.???##?.?.? 1,1,2,1 +?????#????#???.?#? 1,2,2,3,1 +??.??#?????? 1,3,1 +?.??#??#?.?##?# 1,3,2,3,1 +?#??.??.??.? 2,1,1,1 +#???#???..#?? 5,1,1 +.#??????????.? 4,3,1,1 +.??.?#???.??#???#?#? 1,4,4,5 +???#??????????? 6,1,1 +?????#??????#??. 1,1,5,2,1 +?##?..??????. 3,1,2 +???..?.?##.? 1,1,2,1 +?????????#? 4,1,2 +.????.#???#?? 1,1,2,2 +..??##??????.?#?.?. 6,2 +?.?.?###?.??.#?.. 1,4,2 +.##???.????????? 5,3,1 +..????..?? 4,1 +??#?...#?#????? 3,1,1,1,1 +????????????????? 3,11 +.?.??.?#??#.?????. 1,2,2,1,3,1 +#...?.##?##??.#.#? 1,1,6,1,1 +?????????#??##?? 1,3,2,3 +#??#?##???? 7,1 +.??.??????.???#? 2,2,1,1,1 +?#.#..??.?????#? 1,1,1,1,3 +#????#?.#????#.?#?? 7,6,2 +????.?#?.?? 1,2,1 +???###..???#?.#? 1,3,4,1 +.???#?.????? 3,1 +???????#?### 3,1,1,3 +????.????.#? 1,3,1 +??????????.????#??? 1,2,1,2,1,1 +????#.??###?#?###?# 1,2,13 +##?.???#??? 2,4,1 +?#..#???#?#??? 1,1,6 +#?..??.??????????#?# 2,1,1,1,7,1 +?????.?#.????. 2,2,3 +?????.#.???#? 2,1,3 +??????#??.??? 1,1,3,3 +#??#??.?##??#??#?. 1,2,1,6,1 +#?##?.#???????#?.? 1,3,3,2,2,1 +???.?????###?#???? 1,4,8 +.?#????#???????? 4,3,1,1,1 +??.?????????????##? 1,5,1,8 +???.?#?????#?# 2,4,3 +??.????#.#?? 2,2,1,3 +??????.??????.#?#? 5,2,3 +??????????? 1,2,3 +?.?#??#???#?????## 4,8 +..##?.???#?.#??### 3,5,6 +????#??.#??.#??? 6,1,1,1,2 +?.????#???? 1,6 +????#???????#?#? 1,1,1,7 +????????.?.#?. 1,1 +.????##????.??.?? 1,6,2,1 +?##?.?#?#?.? 2,5 +??#?#????#?..#?#? 1,1,1,5,4 +###???.???.???#?? 4,4 +.??????.?##????? 2,1,3,2 +?.?????.?# 1,1,1 +#.##???????? 1,3,1,1 +#????#.?.#??????? 1,2,1,5 +.??.?##??.?.?? 4,1 +##?#.?.?###???#?#?? 2,1,1,10 +????#?.???#?.?. 1,2,1,2 +?????????????? 3,1,2 +?.#??.##?##?..#? 3,6,2 +?#.??#???#? 1,1,2 +#???????#??? 1,1,3,3 +??##??.#?#.???. 3,3,1 +#.??##???#?#???.#? 1,13,1 +?????#.??.#?? 1,1,2,1 +??#?##????????? 1,1,4,1,3 +?.???.????.?#? 1,1,3,2 +..????.?#?????.? 1,1,6,1 +?.?.??#?###?#. 1,1,1,7 +#?#.?????#????.#. 1,1,7,1,1 +???.??##????#?#? 3,3,1,3 +?.??????#??#????.#? 10,1,1,1 +??????????#???# 1,2,2,5 +?###?.#?????#?. 4,3,3 +.##???.???. 3,2 +#?#.?.????? 3,1,1 +????#???.#??? 5,1 +.?#?????#?????.??? 1,1,6,2 +#?#??##????????.?? 10,1 +???.?#???#? 1,2,1 +??#?.????????? 4,4,3 +??#?#?.##.?# 3,2,2 +?#?????.#???#.#? 1,3,1,2,1 +?????#??##..?#? 5,3 +???#.?#??? 4,4 +...??.????#????.? 1,7 +??????.?????#?????#? 2,3,6,2 +??#??.#??##??#.? 1,1,3,1,1 +.?????.??#.????? 5,1,1,2,1 +#?#????##???.#????. 4,3,1,1 +#.#???.#????#?##?# 1,1,1,2,1,6 +#?????##????#?##?.?? 10,4,1 +?#????#?#.??.##???.. 3,5,4 +?.????.?##??#...? 1,2,2 +?.???#??#?.?#??? 6,2,1 +??.?????????##?? 1,2,6 +?.?#???.#?#?? 2,2,3,1 +???..?#?#?????#?### 1,1,3,7 +?#??.?.????#????? 2,6,1 +????#?????? 2,2 +??.??#??????.?.??? 1,9,1,2 +?#???#??.?##????? 1,3,1,8 +??##?????#?..#???#.? 8,5,1 +?.???#?#???#????? 1,1,5,4,1 +.##??#??????????? 3,1,7 +??###?##???????.?.# 10,1,1 +#?#????##?????#? 12,2 +?#??#?.?#??.. 5,4 +?#?#??????#??.???.# 1,1,4,1,1,1 +?????????###.#??#??? 2,1,6,1,1,1 +???#????.?#.??? 2,2,2,1 +.??????.?????.. 4,5 +???####???.????.?.?. 7,1,3,1 +.##??#?.???. 2,2,3 +?#.?????????? 1,1,3,1 +.#?.????#??????#?? 1,5,2,1,1 +#???..?####?..# 4,5,1 +..???.???.?#.?.. 1,1 +???.#??###? 1,6 +..??.?????? 1,2 +??###??#????. 1,6,1 +#????#???.???? 2,6,3 +??#???.??????#?.#? 6,2,3,1 +.??#??????? 1,3,1 +?.?.??##???? 1,2,1,1 +...?.??#?#. 1,4 +?????#??#???????? 3,2,5,1 +??.?????.?????? 1,2,1,2,1 +???.?.??.?#. 1,1,1,1 +.?##?#???..#???.. 5,4 +??####??.????. 7,4 +#????#????#???? 9,1,1 +?.?.???.?????.???? 1,1,2,4,3 +??#?#?..??????? 6,1,3 +..?.#?#?##????#. 9,1 +?.?..?#?#.? 1,2,1 +????##?.??# 2,3,2 +?..??????##?#? 4,4 +??????????????# 1,8,1 +????#???#?????.?.?? 1,2,1,4,1,2 +?.###?#??.??#?#?. 7,4 +?.#??#?.???#???#?? 4,8 +??????##????#?..?# 1,9,1 +.?.???#????????#??? 1,2,5,2,1 +?#.???#???. 1,5 +?????#?#???#???##? 3,3,2,3 +..??????.?#? 4,1 +#.?????#??????#???#? 1,15 +?##??#??#???????#.?? 3,5,1,1,2,1 +??????..#?? 2,1 +????#.??????.#.?. 3,1,1,2,1 +.???.????? 1,2 +????.????. 1,2 +#????.#.??#??.??? 1,3,1,5,1 +#.??##???.?.?#????? 1,6,1,2,1,2 +??.?#.????.#???.#??? 1,1,2,1,1,4 +?.#?#..?#?. 1,1,2 +??#?????.?#.?.?.?.. 7,1,1,1,1 +?#?.????.??.???#.? 2,3,1,1,1,1 +???#???#.??#??#.? 3,3,1,1,1 +#????????###???#? 2,1,6,3 +??.#????#? 1,3,2 +???#??.#??##?# 5,2,2,1 +?#??????????#?? 2,5,4 +#.?#??????#?#??#?##? 1,1,14 +.??????????#????? 5,1,4,1,1 +???..?#???#??????##? 1,1,15 +#??.?#.#??????##. 1,1,1,1,4 +?????.???.?.?..#.??. 1,1 +???...#?.????? 1,2,1,3 +.????#??.?#??## 1,3,2,2 +?##?.#?..???? 2,2,1,1 +????.?.?.??? 2,1,1 +?????..???.?#???? 1,2,4 +???##.???#??? 5,3,2 +.????.???.?????? 4,2,1 +?..???#?????##?# 1,1,1,7 +###?#???#?.?#????#. 9,2,2 +???.?????. 1,1,1 +#?.?.#??#?#??# 1,9 +.?#???.?.?????? 3,5 +?.??#?..#?##???#?##? 1,2,12 +#.??#?#???#?#???? 1,12 +???.?.???##?? 1,1,4 +?.?#??#??##??# 1,2,6,1 +.????????..?????? 6,4 +???#???????. 3,2 +?.?????.???????? 2,3 +.??#.??#????#??. 1,1,5,1,1 +??.??#?###??????.?#? 1,8,4,3 +#???.?##?#?.?....?? 1,2,5,1,1 +?#???#?#?? 2,2,2 +.???##?.#?#???# 4,1,5 +?#?#..???? 1,1,4 +????????.#????#.? 3,1,1,6,1 +..?.????#??#??????? 1,1,6,1,3 +?.????###?#?. 1,6 +???..??#?. 1,3 +?#???#???????#?? 8,1,2 +?#???#???? 2,2,3 +?#????#.?# 2,3,1 +#???..??.?##? 3,2,3 +?????????##?#?#. 3,7 +?????##??.? 1,4 +#????.???? 2,1,1 +???????#???? 1,1,2,1 +??##??#??.????#??.# 7,2,2,1 +#????#??#?????? 3,1,3,2 +???#???.?.??. 2,1,1,1 +#??#????#?##??.?.? 1,10,1 +?.?.?#?.?? 1,1,1 +?..##?#.?##?????.? 1,4,5,1,1 +???#..????#????#??? 2,1,5,1,3 +??????#.???##?#????? 1,6 +????????.? 1,5 +?.??????.?? 1,2,1 +?????????.?#?#???#?? 3,10 +??????????.????? 1,1,2,2,1 +?#?#???.??.#? 2,4,1,1 +??.#?.##?? 1,2,2 +???.??#??#???.#?#? 1,1,1,3,4 +??#??##?#???.?#??? 8,3 +??##?..#????.?.? 4,1,2,1 +?.??.???????.???. 2,1,1,1,3 +????#?#????????# 1,2,3,1,4 +??..#??.??????##.?# 2,1,1,7,1 +.?????###?#?##???#? 1,8,1,1 +??#?.#???.#?? 3,1,1,2 +??#.???#????? 1,1,2,5 +?#.????.???? 1,3,2 +#???????#?.?##?? 3,3,1,5 +?#????#?#?#??#?.?? 1,4,4,1 +???#?#???.??? 2,3,1,2 +???.##???..??? 1,2,2 +#????##??.?.??.# 1,7,1,1,1 +#?##????.??.???# 5,1,1,1,2 +#???#???.??.#?? 1,1,3,1,1 +??#??????.#??.?. 6,3 +.#???.??..#?#?# 1,2,1,1,1 +.???.???#??#? 1,2,1,1 +??.??????#?#?#..??? 2,1,1,4,1,3 +?.#?##????..?????? 1,2,2,4 +#????.???.?# 1,1,1,1 +?##???????##???#?? 6,9 +.??????..?. 1,2,1 +?..#???##?###??. 1,2,7,1 +?#????##????.?#???# 2,1,2,1,1,6 +??.???#??.?.? 2,5,1,1 +.##?.#?#?? 3,5 +?#?.??##???##??????? 1,1,4,8 +.??.#????????.?# 1,4,1,1,2 +??#?..####?.. 3,5 +#?#?.?#?##?#.??#? 4,4,1,3 +????##?#???#?.##??? 1,5,1,1,2,1 +#?#????##???#??# 3,4,2,2 +?.##????#..?? 7,1 +.?????#.## 5,2 +?#.#?????????.? 2,1,1,3,1 +.???##?#?#??#??#?# 7,6 +??#???#??#???#???? 6,2,5 +?#?.???????#???###?? 2,3,3,4,1 +???.???.??#???#??? 1,1,4,3 +?##.???#?????#.#?.?? 3,2,4,1,2 +#?????.?####?..?. 3,6 +?#????..#??????#???? 2,2,1,9 +??????#?#?? 4,5 +???#?????????#???# 3,10,1 +???..?#?#.. 1,3 +???..?????#?###??. 2,9 +.???.???.? 1,3 +????#.???###.???? 1,1,3,1 +?##??????#. 6,1 +.#?#?#.???.?.?? 3,1,2,1 +.?#?.???###?#?##?#?? 2,14 +#?.???????? 2,6 +??#?###?????????#??. 8,3,3 +????.????.??#?. 3,2,1,1 +.#?#?#?#???#??##?? 1,1,5,7 +.##?#?????#?#.?.#?. 8,1,1,1,1 +????..#??? 2,2 +??????#????? 2,4,2 +?#??#???#?...? 5,2,1 +???.?.?????.? 2,5 +???#?#?##??????#.?#. 10,1,1,1,2 +#?..?.??#??????# 2,5,2 +#?????#?#??.?# 11,1 +?.#?#?.?.? 3,1 +?????.?.?#???? 3,6 +.??????#?#?? 1,1,2,2 +#??##????#?.??????? 6,2,1,4 +?.??###?.??# 1,3,3 +??????#??.?#???##. 1,4,6 +?????..??????#?#? 5,10 +?###?#?#????#?.???.? 8,3,1 +..?###??????????. 4,1,3 +??????.#?#?? 1,4 +???????#?.??? 1,3,2 +???####???.???#.? 7,1,3,1 +??#?.??.???##.??. 1,2,2,5,2 +#?.???##???.?? 1,1,6,1 +????#??????#?#?? 1,1,5,3 +.??#.?.##?????.? 1,7,1 +.?.?##??#? 3,1 +?.???????#??# 1,10 +?.???#??#??#??? 1,1,2,5,1 +?#.???#??. 1,4 +?????#?????##???? 1,5,2,1 +.#?#????##? 6,2 +#????#?##?..?? 1,3,3,1 +?#??#?..??##?? 5,4 +?.?.?#???? 1,1,1 +??#???#?##?? 6,4 +??.??.?????#??#?#?#? 1,1,1,5,6 +.????????? 1,1,4 +?#?..?#... 1,2 +?#.?#?.???.???? 1,3,2,2 +??#?#?#.???#??? 6,2,4 +????#???##? 4,4 +??.??###??#?#????#.? 11,2 +??????????.??#.???? 1,5,1,1,1,2 +?????????##?.? 1,2,6 +?????##????#.#????? 6,3,1,1,1 +?#???????#??.? 5,2,1 +??#?????????. 4,1,2 +#????.##????## 1,1,3,3 +?#?##???##???#.?? 5,4,2,2 +.#??#?#..? 6,1 +#???????##???#?.??? 1,9,1,1 +?.???...??? 1,1 +??#??.#??#? 4,4 +??.#???#.?#????? 1,3,1,1,1 +?#?.#?#.#?.?###???## 2,3,1,9 +??#?#????#??#? 7,2,2 +#??#?.?#?.??? 1,1,2,2 +..#.?.?#??.? 1,2 +????#?????#?#??? 1,1,1,6,1 +?.???##???????##?.?. 6,2 +.##.??????#? 2,7 +?.#?....?#? 2,2 +??????..?#####????? 1,3,8 +?.?????#???? 1,3 +??#???????? 1,1,3 +.???#?????.#?. 1,4,2 +?.??.#??#?#??? 1,8 +???????????????? 1,4,1,1,1 +???##?#????# 1,5,3 +??#??.???##? 1,1,1,5 +.##??#?.?????.???#? 5,2,1,1,1 +..?##.???????.?#?. 3,3,1,3 +#??#???.???#..?? 4,1,3,1 +??#????????.? 3,1,1 +??.??#???#??#?????.# 1,4,5,2,1 +?#?..????#??? 2,1,1,3 +?????...#.? 1,1,1 +??.?.??###?.?? 1,4,1 +??..?.#????#????#.?? 2,6 +.???#?????#. 7,1 +??????#?#?.#.??.??? 9,1,2,2 + diff --git a/2023/_input/day_13.txt b/2023/_input/day_13.txt new file mode 100644 index 0000000..83cf508 --- /dev/null +++ b/2023/_input/day_13.txt @@ -0,0 +1,1312 @@ +######..#....#. +######.#.#.#### +##..###.##.#..# +......######.#. +#....###...##.# +.#..#.###.#.##. +.#..#..##.#.##. + +#.#....##....#.#. +#.#....##....#.#. +##.##.####.##.### +.....#....#...... +#####.####.###### +.###...##...###.# +..####....####... +.#####....#####.# +.##...#..##..##.. +#.####....####.#. +.#....####....#.# +..##........##... +.#.###....###.#.# + +#########..## +.####..#.##.# +.#..#....##.. +..##..#.#..#. +.......#.##.# +.####.#.#..#. +..##...#....# +......#..##.. +#...###..##.. + +#..#..#.### +###....#### +##..##.#.#. +##..##.#.#. +###....#### +#..#..#.### +##.##..##.# +#...#.....# +...##.###.# +####.#.##.. +.#.###.#... +####..#...# +#.#.#####.. +#.#.#####.. +####..#.... +.#.###.#... +####.#.##.. + +####....####.#... +#.#.#..#.#.#.#... +...#....#....#.## +.#.#.####.#.###.. +#.##.##.##.##.#.. +####....#######.. +.##########.##... +...##..##....#### +##...##...##.#### +.##########..#### +.#.##..##.#..#.## +.#........#.#.### +.##.####.##.#..## + +####..##..##### +#.#..#..#..#.## +.##..#..#..##.. +.#..#....#..#.. +..#.#.##.#.#... +..#.#.##.#.#... +.##..#..##.##.. + +#....##....##.. +##..#..#..####. +##........####. +...##..##...... +###..##..###### +..##.##.##....# +###..##..###### +.##########..## +##..####..####. +..###..###....# +..########....# +..#............ +#.#..##..#.##.# +####....####### +....####....... + +##.##.########### +#..#..###.#..#.## +##..#.##...##.#.# +..##.###...##...# +#.###.#..######.. +##.##...#.####.#. +##.##...#.####.#. +#.###.#..######.. +..##.###...##...# + +#..##..##..## +#..##..#..##. +#.#..#.#.##.. +#......##.##. +#......##.##. +#.#..#.#.##.. +#..##..#..#.. +#..##..##..## +.#....#.#..#. + +.##..####.###.##. +#..######.##...## +#..#.##.#..##.#.# +####...####.#..## +####.#...##.####. +#..#.#.#......##. +#####.###.##..#.# +#####.###.##..#.# +#..#.#.#......##. +####.#...##.####. +####...####.#..## +#..#.##.#..##.#.# +#..######.##...## +.##..####.###.##. +.##.##.##..##.### +.......#.#....#.# +#...#....##..#... + +.##.#.##. +.##.#.##. +##.....## +..###...# +###.##.#. +.#...##.. +.#...#... + +...#..... +........# +#..##..## +###..###. +###..###. +#..##..## +........# + +..####.....###### +#.####.######.##. +###..####...#.##. +..#..#..#.####### +...##......###### +..#..#...#####..# +#.####.####.#.... +.##..##..###..##. +#########.##.###. +##....##.######## +..#..#...#...#### + +########..#.# +....#.##...#. +.##.....#..## +.##....#.#.#. +####.###.#.#. +####..###.#.. +#..#.#.#...## +.##..#.#.#..# +#..#.##..##.. +#..#.#.#...#. +#..#.##..#..# +....##.....#. +....####.###. +....####.#.#. +....##.....#. +#..#.##..#..# +#..#.#.#...#. + +#.##..##.###... +.###..###.##.## +###.##.###.#... +#.#....#.####.. +#...##...###..# +#...##...###... +#.#....#.####.. +###.##.###.#... +.###..###.##.## +#.##..##.###... +#.##..##.#.#### +.#.####.#.#.... +###....######.# + +.####.##.## +#.#..#..#.. +#.#..#..#.. +.####.##.## +...#....... +##.#......# +.##.######. + +.#..##...###..# +.########..#.#. +###.##....##.## +...#####...##.# +.#.#.#.#.#..##. +.#.#.#.#.#..##. +...#####...##.# +###.##....##.## +.########..#... +.#..##...###..# +..##..#...###.# +..##..#...###.# +.#..##...###..# + +...#.#. +...#..# +.#..##. +##.#.#. +####..# +.###..# +.##...# +####..# +##.#.#. +.#..##. +...#..# +...#.#. +####... +####... +...#.#. +...#..# +.#..##. + +#.###..#..#..###. +...#.###..###.#.. +..#..#.#..#.#..#. +...##.#.##.#.##.. +...##.#.##.#.##.. +..#..#.#..#.#..#. +...#.###..###.#.. +#.###..#..#..###. +..##.#..##..#.##. +.##.#.#....#.#.## +.####.##..##..### +#.#.#...##...#.#. +#...#.##..##.#... +.##...#....#...## +.#...#..##..#...# +.#.#...####...#.# +##.#....##....#.# + +.###..#....#..##. +.###..#....#..##. +#.##..##...##.### +#...##..##..##.## +###..#.#..##.#.## +#.#.#.##......... +.###.#.##.....##. +.###.#.##.....##. +#.#.#.##......... +.##..#.#..##.#.## +#...##..##..##.## + +...##....#....... +#..##...###..##.. +.##..##.#..##..## +#..#.##...##....# +#.##...####.#..#. +#...#......###### +##.#...##.#.#..#. +#...#.#..####..## +#.#.#..##..###### +####....#.###..## +.####..#.##...... +.####..#.##...... +####....#.###..## +#...#..##..###### +#...#.#..####..## + +##...#......#.. +##...#......#.. +...#.########.# +#.#..##.##.##.. +..###.##..##.#. +.#..#..#..#..#. +###.##.####.##. +#...#...##...#. +..###.#....#.## + +#.##### +..##### +#.###.# +#..###. +#..##.# +.##..#. +..#...# +.....## +.....## + +.#.#.##..##.#.# +...#........#.. +##...#.##.#...# +.###..#..#..### +##..##....##..# +.#...#....#...# +...####..##.#.. +###..######..## +#...#.####.#... +.#.##.#..#.##.# +#.#.###..###.#. +.#..#......#..# +######.##.##### +######.##.##### +.#..#......#..# +#.#.###..###.#. +.#.##.#..#.##.# + +..#....######...# +..####...##..#..# +.##.###.##.###... +#.#.....#....#.#. +.#.#..###...###.. +.#....###...###.. +#.#.....#....#.#. +.##.###.##.###... +..####...##..#..# +..#....######...# +.#.###.###..##### +.#.###.###..##### +..#....######...# +..####...##..#..# +.##.###.##.###... + +##.###..#.##. +##..#.#...#.# +##..#.##..#.# +##.###..#.##. +#####.##.#.## +###....##.#.# +.......#...## +##.##.####### +###..#...#.## +.......##.##. +..#.##.##..#. + +#.###..#..#.####. +......#.##.#....# +.##..#..#.......# +.#######...#....# +##.....#..##..##. +#..#....#######.# +##..#.....###...# +##..#.....###...# +#..#....#######.# +##.....#..##..##. +.#######...#....# +.##..#..#...#...# +......#.##.#....# +#.###..#..#.####. +#.###..#..#.####. +......#.##.#....# +.##..#..#...#...# + +###.#.# +...#### +##....# +##...## +...#... +...#..# +#..#### +..##.## +###.#.. +..#.#.# +...##.. +####.#. +..#.##. +..#.#.# +..#.#.# + +##.#.###..##...#. +.#..##...#..##... +.###...##.#.####. +#.#.##.#..###..## +.###.#...##..###. +.###.#...##..###. +#.#.##.#..###..## +.###...##.#.####. +.#..##...#..##... +##.#.###..##...#. +.#..#....#...#### +###..####.#.#...# +.###.##.#..###### +#..##...#####.### +#..##...#####.#.# + +#....##..####.##. +#....##..####.##. +.#...#.....#.#..# +...#...#####.##.# +..##..##.###..##. +#...###..##..#### +#...###..##..#### +..##..##.###..##. +...#...#####.##.# +.#...#....##.#..# +#....##..####.##. + +#####..##.### +#####..##.### +###...##.#.#. +#..##..#..#.. +##.#.#..##### +##.###...#.## +..#..###.##.. +..#.#...##### +#########...# +..##..##..#.. +..###.##.#..# + +..#####.##. +.###.###### +..#..#..##. +#####.##### +#####.##### +..#..#..##. +.###.###### +..##.##.##. +##.###..... +#.#####.##. +#.#........ + +...#####..... +...#####..... +#....#.###..# +#######...##. +..##.#..##..# +###......#### +..#.##.##..#. +.##..###..#.. +.##..###..#.. +..#.##.###.#. +###......#### + +.###....###.. +...#.##.#...# +##..#..#..### +##..#..#..### +...#.##.#...# +.###....###.. +..###..###... +##.######.### +##...##...##. +#...####...#. +..#......#... +##.####.#.##. +##.##..##.### + +##..##.#.##.. +.#..#.#...#.# +..##..####### +..##..####### +.#..#.#...#.# +##..##.#..#.. +..##..#.#.### +.####.##.#.## +#....######.. +......###.#.. +.####.##..#.. +.####.....### +#.##.#...#.#. +#.##.####..#. +#....##.#.#.. +######..####. +.####....#### + +##..####..##.#..# +.####.#.###..#### +.#..#.##....##..# +.####..#...###..# +..##..#....#..##. +..##..##.#.##.##. +#....##...#..#..# +..#....#.#....##. +..##..#....###### +########.#..##### +#######.##.###..# +..##..#...#..#### +##..###.#..#..##. + +......##..... +......##..... +####.##.#.#.# +.......#.#### +.##.##..#.### +.#....###.... +#####.##.#.## +###.#.##.#.## +.#....###.... +.##.##..#.### +.......#.#### +####.##.#.#.# +......##..... + +..#..#..#..#... +.##.##..##.##.. +##.##....##.### +....#....#..... +#............## +...###...##.... +####......##### +#...#....#...## +...########.... +#.##.####.##.## +##.#.####.#.### + +.#..######..#..## +##..##..##..###.. +##..##..##..###.. +.#..######..#..## +..#........#..#.# +#.###.##.###.#..# +#.#.######.###... + +###.#######....## +######.#...####.. +##...#..#.#.##... +####.#.########## +##.####....#..#.. +##.....##.#.##.#. +.######..##.##.## +...####.###....## +...#.##.......... +##..#....#.#..#.# +##..#....#.#..#.# +...#.##.......... +...####.###....## +.######..##.##.## +##.....##.#.##.#. +##.####....#..#.. +####.#.########## + +.#...####...#.#.# +##..#.##.#..##.#. +.##...##...##.#.. +..###....###..#.. +#.#........#.#.## +..#..####..#..#.. +..............### +..............### +..#..####..#..##. +#.#........#.#.## +..###....###..#.. +.##...##...##.#.. +##..#.##.#..##.#. + +..##.#..# +###...##. +..#.##### +.##.##..# +#........ +##..#.##. +#........ +##..#.##. +#...#.##. + +..#.##..### +#.##.#.##.. +...##.#.... +...####.... +#.##.#.##.. +..#.##..### +#..##.##.## +.#.#...#.## +##.##.#.... +#..#...#... +##.#..#.#.. +..#.#..#.## +##.#.##.#.. + +#.....# +#...#.. +#...#.. +#.....# +.##.### +.####.. +#.##.#. +##..##. +##..##. +####.#. +.####.. +.##.### +#.....# + +........###.. +#..##..#.##.. +.######....## +......#..##.. +#..##..#.#... +###..####.... +#.#..#.##..## +#.####.#.#### +##.##.##.##.. +.##..##...### +##.##.##.#... +###..####.#.. +.##..##.#.... + +.####.####### +..##..#.##... +##..##....... +##..##..#.#.. +.####..##.... +.####.##.##.. +.####.##..... +#....##...#.. +#....#.##.#.. +...#..#.#.... +#.##.###.#.## + +#......## +.#....#.# +#.#....## +..#..#... +..####... +..####... +.#.##.#.# +.#.##.#.# +..####... + +##.#..##. +..###.##. +..###.##. +##.#..##. +..#...##. +#...##..# +#.#.##.## + +..##..##.#.###. +.###..##.#.###. +###...#.###..## +#######.#...##. +######.......## +#..######...### +.#..###.###.#.. +..#.##.##.#.##. +.###.##..##.### +.####.######..# +.####.######..# +.###.##..##.### +..#.##.##.#.##. + +#.#...##..##...#. +.....##.##.##.... +.##...######...## +.##...######...## +.....##.##.##.... +#.#...##..##...#. +#####..#..#..#### +.....#.####.#.... +..##..#.##.#..##. +####.########.### +###.##......##..# +...##..#..#..##.. +#.#.###....###.#. +.##.###....###.## +.##.#.##..##.#.## +.#.#..#....#..#.# +....#.#.##.#.#... + +#.##.#...#.##..## +.....######....## +#.##.###....##.## +###...##.##.##.## +.#...##..#.....#. +#####.#.##.#..### +#.#####.#..#.#.## +#.....##..####... +..#.###.....##### +#.....#.#####.... +#.#.##.#.###.#.## +#.#.##.#.###.#.## +#.....#.#####.... +..#.###.....##### +#.....##..####... +#.#####.#..#.#.## +#####.#.##.#..### + +###.#..###.#...#. +##.#.#...####...# +##.#.#...####...# +###.#..###.#.#.#. +.####.##..#.##.#. +#.##.###..#.##### +..#..########..## +#.####.....#.##.# +...###..##.####.. +..#...#....#...## +..#####...#####.. +..#####...#####.. +..#...#....#...## +...###..##.####.. +#.####.....#.##.# + +#.............. +#...##......##. +..###..#..#.### +##...##....##.. +.#.#...#..#...# +.####.######.## +..#...##..##... +..#.##.#..#.##. +#..##..####..## +#..##..####..## +..#.##.#..#.##. +..#...##..##... +.####.######.## + +#..###.#.#..# +####.##.####. +#..######.### +#####...#..#. +..#..#...#.## +.......#####. +######..#...# +#..###.##.#.. +######.###### +....##..#.##. +....##..#.##. +######.###### +#..###.##.#.. +######..#...# +.......#####. + +.###.##..#. +.###.##..## +.#...##...# +.##.###.... +.##.###.... +.#...##...# +.###.##..## +.###.##..#. +#....#..### +#.#.##..#.. +.##.#...... +#...#...### +###..###..# +....###.##. +.#..##.##.# + +#.#....##..#.#. +#.#....##..#.#. +#...#######...# +##.##........#. +...#.###...#.## +####.....#.#.#. +..#####.##..#.. +..#####.##..#.. +####.....#.###. +...#.###...#.## +##.##........#. +#...#######...# +#.#....##..#.#. + +...##.###.. +##....#.#.# +...#.#.#.#. +.#.##.##... +#..##.#..#. +######.#.## +######.#.## +#.###.#..#. +.#.##.##... +...#.#.#.#. +##....#.#.# +...##.###.. +#.###..#.#. +..#..###.#. +#..#..###.. +#..#..###.. +..#..###.#. + +.##.#..#. +.#.##..#. +..##....# +##.#####. +.#.....#. +#.###.#.# +#.###.#.# +.#.....#. +##.#####. +..##....# +.#.#...#. +.##.#..#. +..####.#. +.#.#.##.# +.#.#.##.# + +####...#....#...# +.##..####..####.. +####....#.......# +....##..####..##. +....###......###. +#..##..#.##.#..## +....#.#......#.#. +#..#.#.##..##.#.# +.....##.#..#.##.. + +..##.#......#.##. +...#.#.#..#.#.#.. +###....#..#....## +##.#.#......#.#.# +#####...##...#### +##.#..#.##.#..#.# +..#..##....##..#. +###.#.######.#.## +..###.######.###. +..###.######.###. +...#...#..#...#.. +###..#......#...# +..#####....#####. +##....#.##.#....# +...#..######..#.. +..#.##......##.#. +##.#####..#####.# + +####..#......#.#. +#..#...#...#..#.. +....##..#.###.### +......#..###.#..# +#####.....##....# +#..#..#.####.#.#. +#..###...#.....#. +#..##.#.#.#..#### +#..##.#.#.#..#### +#..###...##....#. +#..#..#.####.#.#. + +#.##.#....#..#... +###....###.###### +..###....######.. +.#.#..#.#......#. +..########.##.### +..########.##.### +.#.#..#.#......#. + +..####...#......# +...##....#...#### +#.#..#.#.##..#### +...##.....##.#... +...##...#.#.#.... +##########..#.... +#..##..##.#...### +.#....#.##...##.. +##....##...#.##.. + +....#####.#.##.#. +#....##.#.#.##..# +##...#.....##..#. +#..##..###...#..# +#..##..###...#..# +##...#.....##..#. +#....##.#.#.##..# +....#####.#.##.#. +#..#.#..#..#.#.#. +.#.#.....#.#..### +#.#.#.#####.##.#. +#.#.#.#####.##.#. +.#.#.....#.#..### +#..#.#..#..#.#.#. +....#####.#.#..#. + +#####.#..## +..###.#..## +..###.#..## +#####.#..## +##..#...... +..###..#..# +##.#.#..#.# +#...##.##.# +..####.#.#. +###...#.#.# +..#..##.... +##...##..#. +..#.####... +##..#.#.### +..#.#.##... + +####.#.#.###.#. +....#.#.######. +....#.#.######. +####.#.#.###.#. +##.##..###.#... +#..#.###.....#. +#.#######..#### +.#.##.#...#..#. +#..####.......# +.############## +#.#....#.###.#. +#.#....#.###.#. +.#########.#### +#..####.......# +.#.##.#...#..#. + +.#.....#..#.. +#.#.#.#..##.. +.#####.#..### +#.#....#.#... +#.##...###... +#.##...###... +#.#......#... + +#.#..#......##..# +..#..#..#..#..##. +#.......#.###.... +##.###.###...#..# +####..###.####..# +...###.......#### +###..#..#...##### +###..#..#...##### +...###.......#### +####..###.####..# +##.##..###...#..# + +...#..##.#. +...#..##.#. +#..#.#..#.. +...#.###.## +##..#...##. +###....#... +#.#.#..###. +.#..###.... +.#..###.... +#.#.#..###. +###....#... +##..#...##. +...#.###.#. +#..#.#..#.. +...#..##.#. + +...#####.##.# +#.##......... +#.##......... +...#####.##.# +.#######....# +##.#..#..##.. +....##...##.. +..#.##..#..#. +.###.##...... +.#..###...... +...#.#.##...# + +.#..#...#.##. +...#####.#..# +...#####.#..# +.#..#...#.##. +#...####.#### +......#..#.## +.##..#.#..##. +#.#.#.##..#.. +#.#.#.##..#.. +.##..#.#..##. +......#..#.## +#...####.#### +....#...#.##. + +##....#.##.#. +.........#.## +##.#...#....# +##.#...#....# +.........#### +##....#.##.#. +####.##...#.# +...#.....###. +..#######.#.. + +#.###.##.###.## +###...##...#.## +.....#..#...... +#..#......#..## +##.########.### +#...#.##.#...## +##.###..###.### +.##.##..##.##.. +###.#....#.#### + +..###.##.##.. +..#........#. +##...####...# +...#.####.#.. +....##..##... +..##.####.##. +...#..##..#.. +##...#..#...# +##.#......#.# + +......# +..#..#. +####... +###.### +..##.## +..#..#. +..###.# +##..### +##..### +..###.# +..##.#. + +...##....##.. +...##....##.. +..####..####. +####......### +#..#.#..#.#.. +#.#.##..##.#. +.############ +###...##..### +##.########.# +#.#..#..#..#. +#.####..####. +#.#.######.#. +.#.##.##.##.# +.#...####...# +##..##..##..# + +###.... +###.... +#.###.# +###.... +..##..# +.###### +#.#.##. +##..##. +.#..... + +####..# +####..# +...#### +....##. +...#..# +.##.... +.#..... +#.##..# +##.#..# +.#.#### +.##..#. +##..... +.#..##. +#.##..# +.##.... +##..... +..##### + +##....##.#.###. +....##.##.#..## +.#.######..#... +...#.#.#.##.#.. +###.#..#.#..##. +##.###.....#.## +##.###.....#.## +###.#..#.#..##. +...#.#.#.##.#.. + +...#.#..# +###.#.#.# +###.####. +.....##.# +.#.###... +.#.###..# +.....##.# +###.####. +###.#.#.# +...#.#..# +.##..#.#. +.##..#.#. +...#.#..# + +.#.#.##.#.... +###..##..#.## +#.....###.... +#..##..#..... +#..####.##... +###..####.#.. +###..####.#.. +#..####.##... +#.###..#..... + +#######..#..##.#. +#####.#..#..##.#. +##...####...###.. +..####.#.#..##... +###.#######....## +..#.###.#.#.#..#. +...#.###.####.#.. + +#.######.## +.#......#.# +.#......#.# +#.######.## +#.##..##.#. +.##.##.##.. +#######.##. +..######..# +##..##..### +.########.. +#.######.## +##.####.##. +...#..#.... +#.######.#. +..##..##... + +#........## +.#.#.#..... +.#...#..... +#........## +##.##..##.. +.#..#..##.. +##.#.#...## +#.#..###... +#.#.#.##... + +.##...#.###.. +.#..###...#.. +..##.#.##.... +.#..#.##.#### +...#...#.#.## +.#.##.###.### +#.###......## +#...###..#.## +.###.##.##.## +#.###.#.#..## +#.###.#.#..## +.###.##.##.## +#...###.##.## + +####..###.# +......###.# +.....#..... +.....#..#.# +....#####.. +.##...##.## +....######. +####.##.#.. +#######...# +.##.###..## +.##.####.## +.......#.## +#####...### +#######..## +#####..#.## +####..#...# +####..#..## + +.....#.####.# +#.###..#..#.. +##.#.#..##..# +#.#.##.#..#.# +.....###..##. +####..#.##.#. +.##..######## +.##..######## +####..#.##.#. + +#....###### +#....####.# +#....#..#.# +##..####... +.####...... +..##.....#. +.......##.# +......#...# +#.##.##.##. +......#.#.. +.####..#..# + +...#...#..#....#. +#...##..#..##.#.. +###.####.#..##..# +###.##.##.######. +...#.###.#......# +#..###.#..##..##. +#..###.#..##..##. + +#########.#..## +..#....#.#.#.#. +#.#.#.###...#.. +#....##.#.#..## +#.....#.#.#..## +#.#...###.#...# +..####..#.#...# +..####..#.#...# +#.#...###.#...# +#.....#.#.#..## +#....##.#.#..## + +..##... +...##.# +...##.# +..##... +..#...# +...#... +##...#. +....#.# +..###.. +#####.. +..###.. +....### +.#.##.. +...#... +####... + +##....######..# +.#....#.##.#..# +########.###..# +.##...#..#..... +.##..##.##.#### +.######.##.#..# +#..##..#...#### +##.##.#####.##. +.#....#.##.#..# +#......###.#### +#.#..#.#.#..##. +###..###..#.##. +#########.#.##. + +#.#####.#..####.. +...###.....#..#.. +#...#..##...##... +####.##.#.##..##. +#########.##..##. +#...#..#.######## +#..##..#.######## + +..##### +..##... +#..#.## +#.#.### +.#..#.. +....### +.#.#.#. +....#.. +#..#### +.##..## +.##..## +#..#### +....#.. + +###..#.## +#.###.#.# +#.###.#.# +###..#.## +.#.#.###. +.#.###.## +.#####.## + +#####.#.##... +#..##...##... +.##..#......# +......#.##.#. +####..######. +....#.######. +.##...#....#. +.##.#........ +#######....## +#######....## +####.#..##..# +#..#.###..### +#####.#.##.#. +####.#.#..#.# +#..####.##.## + +####..##### +#.#.##.#.#. +###....###. +###....###. +#.#.##.#.#. +####..##### +#..#..#..#. +#.##..##.## +...####.... +######.###. +##..##..### +..#.##.#..# +#.#.##.#.## +####..####. +#.##..##.#. +.###..###.# +#..#..#..#. + +#....#.##..## +........#..#. +......####.#. +......####.#. +........#..#. +#....#.##..## +#.##.##.##.## +#....#..#.... +#.##.##..#.#. +##.#####.#.## +..##........# +......##.##.# +#....#.#..### + +##..#...# +##..#..## +#..#.###. +######..# +#.###.... +....#.... +....#.... +#.###.... +######..# + +........#....##.# +.####...#....#.#. +..##..####.#.##.# +##..##.....##..#. +###.##..#######.. +.#..#.....####.## +.#..#.....####.## + diff --git a/2023/_input/day_14.txt b/2023/_input/day_14.txt new file mode 100644 index 0000000..8adc8cc --- /dev/null +++ b/2023/_input/day_14.txt @@ -0,0 +1,101 @@ +#.....OO..O#.O.#O......#...#...#.O......OOO.....O#...OO##...#..#O..O...........O..#O....O......O..#. +#....O#..OO#..O.#O#O......O..#..#.O..#.....###....#.O.....#O#.##..##..............O..OO.#O.##OO.O.O. +OO..#.O.O....O..#..##.O..#.O..#O..#..#..#..O.O..#...O#.OO.O.#.....#..#.O..OO.#......#....#.O..#.#.#O +....#..#.#.O...O.........#...O...##.....O......#O#O.#O.............O..#O.....O.O.O..O#......#.O.#..O +#...O..#..#..#..OO......#.....O.OO...#...OO.O......#O.....OOOOO.##......#.#....OOO#...#.......O..... +.O.O...O.#.....O..##......##O#....O.##.#OO#...#OO..O..##...#....#..O.O.##......#..O.O#...........#.# +....#....#...OO....#..#.O...O...O.OO#O.OO..O...OO.O....#OO#.#....O....O..#...#.#.##.O...O.O..O..##.. +...OOO..#..##..O..O.#...#O......OOO....#.#.OO.#.#..#.##O...O.O....##OO..............O#.O..##.O#..OO. +##..#.......OOO..O....#.O...O.O......O#..O##.OO###..OO....O......#....##.O.....#O#O...#..O....#..... +#..OOO..#.O##O.......O..O....O...#.....#OO..#.......##.O...#....#.#..O.O.#O.....OOOO##..##O#O....O.. +#.O#..O.#..OO.O.#O.OO#O....OO.....#..O...#..........#....OO..O#O.#OO......#....OO...#....#O.O.O.##.. +#......#.#.#.##.#O#.O....OO....##.O.#..O..O..O...#O.........#.O#.#..#..#...#....#OO..#OO..#........# +...#..O.O.OOO#O#..OO......OO....#..##.....#O.....#.##.OOO#O#..#.....O....#......O.#.#O.O.O..OO.#.... +.#O..OO#O...#...#O..O#.OO....O..##..#..#...........#..OO#O.#..#...OO...O.#..#..O..##......OO....O..O +.O..O#O..#...#O#O#.#......#.#..O...............O..O.O#.O..........##..#.O.....OO#.OO.#....#.####.... +O..#.O#..O.O.O...#.#O.#.......O....OO.O.#.O.O....#O##.O.......##O..OO#O...##.##O#...........O#.O###. +.O..#O..#....#..O#O....OO#....O#........#.#.#...#......#..##...O.......#O.#.#O#.O...#O.#.OO.#....... +###O.......#.....O.O..#.#.....O.....#...#.#......#O.O.......##......##......OO.#.O..OO...O#......... +..O..O.OO#..OO#O##....O..OO...O.O..OO....#.O...#O.##..#.O........#....#OO#....#...O...O.##.#.#O#OO## +....#OO.O.....#.OO.#.#.#.#......OO......O...#.#.#....O..O#......#O.O#...O#.......#..O..O..O.##....OO +.OO#OOO.....O.OO...O...#....#OO........OOOOO..O..#...O#..O.....#..O#.#......#O.#..###.O.O..#.O.....# +O##.####O.##.OO..#..........O#.O...........#..O..........O...#.....O......#........O.#O.#O#O.O..O... +...#.OO..##.....##.O.##...O....O.##.....#.O..O.O.....O.....#....O..#.#..O..O....O....#O..#O..O..O... +...O#..OO#O..O...O.....#..#..#.O.O......O#......O.##.OO....O...#....#..O............O...OO#.O..O#.O. +O..O..O.#O....O#.##O..#..#.#.O.....####OO...O.##..O#..OO...OO.#O.......##..#.O.....O..O.#O...O..O..# +........#O..#O..O..#.#.....#..#...O.......O...#..OO.##.....O...O..O.#.....##.......#O.#O.#O...#O.#.. +......O...#O#OOO.##.##O..#...O....#O.......OO....#...OO....O...#..O...#O.....OO#O#O##..O..OOO.#..#.O +##O..O.O..O.........#O....OO.##O..O..#OO....O.......O#O#.O..O......#....O...#..O#....#.OO#..#....O.# +..O....#...........#.O.O.O...#.#....#.#.........O.#..O.#.#..O........#O....##..#O...O.O#...O.#...O.O +#....O............#....#..O.O......#....#.#O......#.OOO...#.O..O##...#.#..#...O..O..#..#....O...O... +........#..O#.......#O.O.........O.###..#...O#..O.....OO#O...O...OOO.#..........#.O.OO#...O......... +.#.....##.#.#O###.O...#.O##O.#..#..OO.....#.....#....#...O........#..##O.#...O.....O........O#.O.O.. +.O.O##...O..##O...#.........OO#O.#...#O.......O.....O#....O.O.....###...O.#..#....O........OO..O.... +#.##OO.O.....OOO.#...O......O....#..OO..#O..##...OO.....#.#...O.O#..#O##...OO..#....O#..#.O.#.#..OO. +.O........OO.##....O.#.#....#...O.O#..O...##....OO.O....O.##O..#.O....#O....O.....#..O..O.#...OOO..# +.OOOO..O#O..##......O##....#OO.#..#...#...OO#.........O.#...#..##..O...O.##.OO##..O.#.......#...#O.. +.O##......#...#O..OO.O.O.O.......O.#................OO.......O.OO....O......#..O..#....OO#.OO....O#. +....#OOO...#..O..#..OO..##...##...#...O.O...#.O..OO#O....#.....##OO...O.O....#.OO.O.#.#O..O.O#.#...# +OO...#OO.OO#...#.#....O.#.O...#.....OO..O.....#O..#....O.#.#...............O#..#...###.O.O..#......O +#O#.#.....##.O#....#O....O...O.#.OO#.OOO...OO.....OO...O....#.#O....OO..O..#OO#.O...O..#O.##...#.... +.#.#O#...OO.....#.O##.OO.....#O.#O....O#..O#..O...O....O#.O...#O........#..#OO...#...O.O.#O##....O.. +.O..#.O#O..O....O...#........O....O........OO..O.#..O..#...O.O.#.O.#.O...O........O..#.#.O#...#...#O +....O..O.##O#..O.....OO.O.......##.#....O.....O.OO....#.#..O....#...#O#O.#.#.O..O.#...##.#.O..O.O... +#..OO.OO.#...O##O#.O.#.OOO..#O.#.........OO.O..##.#..#..............OO#..##OOOO.O.#..#....#...#....O +..O..#.....##.#...OO..O.....OO.....O#.O.##.#...O.#O..#............##....##.....##..#.#.O...O#..OO..O +O.#..O.#.........#...OO....OO....#..#...OOO.O..OO.#...OO.......#.#.O..O..O....O.......#O..#O..O..O.. +#.O#...OO......#..OO#.....#..O....O#....#O...O....#...O...#.O.O..O.O..#O...O.O...OO.#O..#.O.......O# +#O........##..O...........O#.........#.O.......O...##..OOO..#...###O....#..#.#.#OO#...#O....O.O...O. +#......OO.........O......OO..#..OOO.#......#...O....#.O.#.....OO.#...O..O..........###.O...O......#O +####O..OO#....O#...#.O.......O.#...O.....O##....O.O#........#.....#O.#......O.#O....O.#.OO.O.O.#OO.# +..#.....#.....O...#..O......##.###...#..O...OO#O...O.#..OO...O#...#.....O..#....#O..OO.O#.....#...## +......O#O...O..O...#..O..O.O..#OO.O.#...O##..OOO.#.#.....O....##....#O...O.....OOO..#O.O..O#.OO.O#.# +.....O.....O.OO##...OO#....###..#..OO.#O.#.#..#.....#.....O......OO.#.#OO...##......#..O##.#..O#O... +...#O..#...O...O.O...#....O.#...O..O.O.......#.#O...O.O...O#.....#.O.#.......OO.#..O..O#.....O...... +......#.O#.............O...O..O#O...O#.O.#..O..O.O#....#.....O...#...#O.........##...OOO.OO.#.#....O +..O..#O...##.O.O......O##...####.#...#..O#....#...O.O.OO........#...O.#.#........#...O......#....O.O +..O..#O.OO...O..#...#O....O.....#O......#OO.....#...#..#....O..#..##O..O..##...........O.O##...####. +#.OO.O........O.....#O....O..#..##.##.O.....#..........#OO.O.O#O#.....#.O#..O...#O##.....#.#OO...... +#.....#....O##..O..OO..O...#..O.##.......#..O..O....#.OO..#..#...O..#..O.#.....O.O..#O#.....#....... +..O...O..O..#O#...........O.....O....OO.....O..OO...###O##..#.O..O..O..O.#.#OOO#O.O......#.O..#.#... +...O#O.O.#..#..........#..OO.###..#O##..O#..OOO....O.#.....##.O##..#...OO...#O....#....OO.O.#.#.#... +.O...#..O#O.O.OO....OOO....O#..OO.#O...O.O..#......O.O...##..#..#O.O.#OO...O.O##...........O#O...O.. +..#..#..##...OO#.....O#O.O#..O...O.##O.##...OOO.O.#O#O..O....O#....O..#...#.O##.....#.O.OOO..#.....# +.OO....##O..O#O.O..#.#....OO..O.#.......OOO#.O.......#O.O.O.O.#...O....O.O...##O...O..#OO#.....#...O +.......O.O.O#.OO.#.#OO...#.O#..#...O...#...#.#.....O.#O..OO........O#OO##..#.O.O.O#.O..OO#..#.O##... +...........O...#..#.OO.....O#.#.#...#O......O..OO..#.#...#.O.O.#.O...O.#.O.O..OO.............#.#O... +.#.O#..O.O.O.OOO.##.......#..O.O..O##...O......OOO.......#O#.O.##..#..O...#..#.O.#.O..O...OO#O#.#... +.........OO....O..#.......O..O.OOOO#O....O...O..O.O..#OOOO.O.OO.O...O.......#..O....#..O####..O...O. +O.O.............#..##O#..O..#..............##.O....#O....OOOO............O.#.#O.O....O.#.......O.O#. +....#O.O.#......#....O.O...#O#O#OO#.O.O.....O...O.#...O.OO#...OO#.OO............#....#..O....##.#... +#.O..O.O.O.O.............#.#...#....O..#OO.#........O.........O....#..#.O.O.#....#....#..#O..O...... +.#OO..O..O.O.O#...........#...OO.#.....O.O........O..O.....#.##.OO.O..O..........O...#.O...#..O..#O. +...#O#O#.......#.O..O.O.#....#..#..O.O.O..O#..O##........O.O.#....#.......#..O.O..O.#...O..O...#...# +OO.O...#..O.#...#O#......##.#O....O...O.......O.O.O......#...........O.O.#O#.........O...O#..O#.#O.. +O.OO.O.O.O.O..#..OO......OO....OO......OO....#.....O........O.#O.O##.O.O.O.#OO.O....OO..##O#...O.... +..O..OOO.O...#....O..O#.O...O..O.O#O..OO...#OO.#....#.#.#OO.....#...O..OO#OOO....O..OO.O.O.O#..#.O## +O....O............#.O...O...O.O.O.......#..O....#O..#..O#O...#........#....O...#O.##O.#.O.##O....O.. +.O.O....O..O..O..O..O..O.O.O.#....##...O.O.....O..##.O#.O.O.#.OOO.O........O#OO..OOO.#.#..O.....#O.# +OOOO..#.........O...O.....#O.O..#.O.#......O..OO.......#O.............O...#.#.O..#.#.......#.O...... +.....OO.O...OO.#O...O.#.#.O.#.#..O.O.....O.O.##O..#...O.#...##O.O##...#O#...#O..........O#....##.O.. +.#..#.....#.O..##O.O...O.#..#.#..###...........O..#.....O#.OOO#..#OO.#.##.O#.....OO..##O.#.O..#O...O +#....O...O...O#..O.O......##O...O....##....##.O#.O.....#..##.O#.O#.#...#O.###...#..OO.#O..O.OO....#. +..O.OO.#....O.#.OO....O......##.OO.....#.......#.#..O.O.O...O.........#O#..O.O....O....#O.O.O....### +.O...#......#OO.#.O#.O.#.O...O....OOO##O#.O##....#.O#..#O#......#.#.........OO....O.#....O.....O.... +.#..O.O..#O.#....OO....O.O.#.....OO.O#.O#...##O...O#............#.OO.....O...O....#.#O#...#..#.O#.O. +.#O.......O.O.#...O.......#..O..#O..O.##..O#.O#....O..O....O.O#...O..OO................#.OO..O.O.#O. +.....O.#...O.O.#...#...O.O.O.#......#.O.#.##.........#.#.#O.............#O#.....O.#....O..OO#......# +O....O..#.#...#O#.....O.O...#....O..#.O#....O....##.OO..##.....#.O.O...#O...O##....O#OO#...#O#O#.O.. +..O.#..#O.O...#......#...O.O..O...O......OO#...O...#OO.OO.#.O##..OOO....O..#...OO.O...#O#O..#OOO.#.. +.##....O.#..O#.#OO..#...O....#O...#..OO................O....O....O#.O.#.OO.O....#...OO.#.O#..#O#...# +.....#....#.OO..#O....#.#.....#..##.....O...#.O..O...............#O##....OO.#OO.OO.....O..O......##. +.##..##O..#......#O..O...OO....O.#.#OO..#.....O....#O.#.#.#..O...#O.#....#O.O.....#.#O.O..........O. +.......O##.O..##..##..O#....O.OOO.OO.#..##O...O#.#......#O.....O..#..#...#...#O..#.#..#..#....#..O.. +...#.O..O.#....O....O###....O#...#..#O..O...#.#..O.O.OO...O.##......#..##.OO#O..O.......O#.O...O.O.. +....O.O.O..#O...O.................OO.O.......O.OO.O#.OO..#.O.OOO.O.O....O...OOO....OO....OO#.#...O.O +OO.....O.#.##.#O..O.O...#.O.O#...O...O.OO....#..#..........O...##..#.....#.#O...#..O#..###...OO#..#. +....#O.....O..O..#.O##.#...###..O...O.O...O#..#.O.#O..#..O.#..O..#....#...#..O..O.O....#..#.....#... +#O.......#..O.O..#.....O#O..O..O.O..##..#....O.O#.#..#.O.#.OO..O...#O....O....O#O#..#.#O.O.....#...O +.O.###.O..#..#..#.......O.O....#..OO...##..O#O#O#.....O.##O.#..O.O.OO.#.O...OO...OO.O..OO.O..#...O#. +.O#OO.#.....O..#.O#.#O.O......O..###.#...#.......O#...#O.#..#..O.#.#......O.O..#O..#...#O..#O.OOO.#. + diff --git a/2023/_input/day_15.txt b/2023/_input/day_15.txt new file mode 100644 index 0000000..99246fc --- /dev/null +++ b/2023/_input/day_15.txt @@ -0,0 +1,2 @@ +fnln-,bkxf-,spfc=9,ds-,trzx-,dtck-,xs-,bg=4,fgmpc=5,xmxf=1,cl=9,md-,ct=2,ftz=5,xhd-,vkqx-,hxd=6,mlcn=6,ctdbt=6,txpsv-,nkx=3,jfz-,fzm=3,rvcd=4,nfgp=3,jjd=7,nzq=6,zv=5,lh-,nfgp-,gcbtgm=7,zj=6,sxlh=3,vsj=8,cjb-,tslfp=5,vc-,kpn=7,qpm=5,jgmnxd-,xp-,kmm-,xb=4,tv-,bmnlf=7,cb-,vbmk=5,dvz-,ssd=6,sb-,mldgtn-,mtx-,kz-,nzq-,dnkf-,sn-,js-,bpq-,vc-,fzm=9,xqv-,gqsr=2,jzxp=5,bc-,lxg=5,sv-,gflrmd=9,ncjb-,fm=9,lln=1,ql=9,tj=2,pbmldc-,fkzq=7,vkh=3,tn=4,fdl-,frgf=1,vf-,fpg=4,xzt-,jf-,pjfk=5,rvcd-,rv=6,zrs-,qnd=1,vqzhc-,xrb=8,lvx-,dfz-,xstdx=6,sf=4,hsb=3,sqjgc-,xtl=7,zthrd=8,mldgtn-,rc-,kpz-,tpnmp=6,bzj=7,gmrrx-,bszd-,mjz-,bzj=8,ztk=9,dtv-,qgm=4,ssd=3,xc=8,hvglb-,xf-,qhvz-,vqc-,ktj=1,ppq-,zxt-,rnsbt-,qpx-,nj-,vhl-,rknz-,zngsp-,vhl-,fjh-,vrzjf=7,gkn=6,tfd=4,bgg=1,fgmpc=9,lpd-,pbmldc=4,jm=2,vlv=4,shn-,vps=8,ljsvc-,rfdrk=3,vkqx=7,gftx=9,nzq-,cq=1,ckb=6,zsx-,qpf-,cggz-,bzj=9,lfg=6,tfd-,xdfz=8,ghbr-,dsdm=8,nj=4,jf-,fnln=7,fzm=7,fkzq=7,xcq=8,fkzq-,dm-,bfz=2,lqf=4,sfp-,kpqvtc=2,fkzq-,vth-,zn-,xhs-,vsj-,psfnx=4,xbx=1,xgk=9,snpgsm-,psg=3,shn=6,qxkrd-,pxvxlh-,xbx-,gt-,ksn-,dzn=7,gp=7,mp=8,jtz=3,ph=2,jxj=8,pg=5,txkh=6,drls=6,zthrd=9,gqsr-,dtv-,mktlhp=9,bszd=5,snpgsm=5,qz=6,sh=6,lqt-,mktlhp-,mgt-,mvmqfm=5,bc-,lpd=6,zn=3,nhsvv=3,vdf-,znjg-,phsl=7,tnb=4,qlf=9,txpsv-,pxvxlh=6,lqfv=7,lffv=5,djmlb=7,pxn-,hdxvhr=8,vbz=1,vqc=1,xrb-,bj=1,bzpv=5,tdl-,xc=2,cnr-,ss=6,mf=2,sv=2,mp-,zpc-,rqg-,xtsd-,hlg=6,xdfz=9,nl-,kfp-,cr-,qxkrd-,vpxv=9,mtx=1,drls=9,jzxp-,xqfrg-,js=3,ql=8,xp-,kpz=8,zj=9,jxj-,gf-,gcbtgm-,cmpc=4,tr=4,px=6,pvv=9,tpnmp-,jhhqj=5,mmn=3,qpf=5,vnk=9,cnn-,xgr-,mmsz=4,lvs-,cv=3,cq-,bfz=8,ct=7,kr=6,gk-,zdtz=1,vqzhc=3,xzt-,vqt=4,dphx-,kmr-,fkzq-,lk=8,dvz=6,ghbr=6,hm=6,zm-,sn-,jgmnxd-,vkz-,ps-,vpxv-,gpg=4,bmnlf=9,pjfk=3,ndmt=7,zk-,zthrd=5,fgmpc=8,rgh=7,bx-,ctp=2,nl=7,rtj=6,grlkl=9,zf=8,lg=4,zngsp-,rsn=5,drls=9,lxmkfx=7,sbt-,bx-,lln-,dm=6,fnv-,qpf-,tq-,qv=9,cfnbp-,pxvxlh-,tr-,nh-,clg-,xjpbxm-,zs-,trzx=8,bgh-,cmbv=1,vq=6,lcr=9,scbjp-,sjb=2,gmrrx=6,mg=5,znjg=4,zn=9,grlkl=7,xmxf-,smtd-,vkh-,spsx=9,qpf-,bgg-,smtd-,ntg=6,qpf-,vtp-,nlcrm=8,cvc-,frgf=8,blfx-,vbz-,tcs-,bqpp-,fjh=5,rtj=5,vr=6,kjrc=1,nzq-,qpf-,vqc-,kmr-,hj=8,fnh-,scbpb-,gxg=9,kf=6,xhs-,zdl=9,sscn=9,dzt-,rl=9,gr=6,tv-,jmthd=9,gn-,bzj=4,pv=9,pcnzf-,jxj-,sxlh-,lxg=3,rpn-,vr=9,rl-,tslfp=5,pgd=2,xmxf-,mjz=9,drls-,hrbj=7,rr-,lxg-,grlkl=3,jsv=1,sr=6,dv-,scbjp=1,pkg-,mgt=9,hsb=3,ccs-,xdfz-,cqq-,nbtq=2,ljsvc-,rpn=8,msbfzl=5,kz=7,cnr=4,hz-,ctf-,tgqp=9,tfd-,sqd=7,rb-,qf-,srp-,fkzq-,pfjml=6,rnsbt-,dmp-,zngsp-,cfnbp-,kpqvtc-,gftx-,lvs-,zpc-,kpz=2,pxvxlh-,spm-,rt-,ftz-,lvs=2,zsx=2,sjb=4,lxmkfx=7,bqpp-,hb=7,xzl-,ckb=7,hsb-,cvc-,ksn=7,mktlhp=5,jhl=6,snpgsm-,mm-,xstdx=2,rm-,rqx-,ld=4,zv=6,fx-,sbx=2,blfx=8,fmkjj-,km-,cmbv=8,vz=9,lg=4,fpg=4,kpfr-,dmp=4,xxj-,jhl=2,km-,vx-,sh=8,xqv=3,kfp=3,zdm=3,tdl-,ddxn-,gzrz=9,xqv=8,kqh=2,rlrlql-,lpd=1,vr=1,ggm-,dkz=3,jx=2,trzx-,sjb-,rh=8,dbsf=4,jhhqj=8,jzxp-,bkxf-,thnmq=7,mktlhp-,jtz=7,sh-,plt-,rfdrk-,hj=4,dk-,zjvd=9,jsv-,vkn-,jc-,zk-,mmsz-,lcr-,dkz-,px-,pcnzf-,jtz-,pzd-,kqh-,ts-,znb-,dzn-,qgm-,drls=9,bmnlf=3,thnmq-,bpq-,zxt=9,lg=6,rknz=8,bzj-,vsh-,lq-,rm-,ql-,cs=1,dzt-,hfrdk=4,kmm=9,lhks=9,jsv=5,zxt=9,kc=4,rm=8,hvglb-,bzpv-,drs=1,tgqp-,trg=4,dp-,zmlr-,pvv-,lfg=2,rqg-,nh=5,mkj=5,cct=1,lxmkfx-,txpx=2,vps=5,dzn=3,dph-,kv=1,vth=6,gftx-,lztd=3,hb=8,qpx=2,fjg-,plp-,vnhfc=3,zv-,xt=1,bgkjq-,pbk=9,hj-,sv-,kpz=5,fnh-,zpc=3,zj=8,pxvxlh-,qgm=6,gct=5,tdl=5,xtl=2,lg=7,trzx=9,hvglb=3,ss=6,vpxv-,gh-,js=1,jf=1,rqx-,pg-,nqcj-,zzx-,mf-,zlcmgc=3,lxg=8,rpgj-,vhl=6,phsl=8,dtck-,rxv=2,qpf=7,nh-,ccs-,mf=3,xrm=4,pljg=1,rnsbt=5,nnn=2,snpgsm=5,qxkrd=5,xgk-,trg-,phsl-,bzj=5,ckb=4,cqbvs=5,xgk=8,ck=7,dbffb-,tj=2,dm-,fjg-,zdm=8,jc=9,rqg=3,qhvz-,cmpc-,dzn=4,xrb=2,kfp=2,vbz-,xhs-,dnkf=3,chpn-,sl-,kftx=5,rsn=5,ps=9,jm-,pbk-,vq-,qpf=4,rfdrk-,rsn=9,nqcj=7,vsh=7,npm=7,qxkrd-,hpl=1,rnsbt-,pxn-,zsx-,lpd=5,fgmpc-,vkqx-,vth-,pm-,mgt=5,cct=3,bb-,hzlzn=2,gkn-,mjz-,kx=8,qcnnzx-,kmr=7,lfl-,jhhqj-,lqfv-,gkn=5,pfjml-,lhks=4,bzj-,tnp-,nj=1,xhs-,rtj=9,rlrlql-,qcm=3,mph-,fx-,jm-,xtl-,xdfz-,msbfzl-,ckb=7,hj-,cqr=5,scbpb=2,tslfp=1,kmm-,cv=4,zpc-,qfb-,rlrlql-,trzx-,sf-,ccs-,fsz=2,dv=8,thncf=4,bmnlf-,qgm=8,plvd-,dm-,pjfk=4,gr=6,qv=7,khx=3,vs=7,dtck=9,xbx-,xstdx=8,km=6,hgp-,kf-,xf=1,vnhfc=6,xgr=1,pbk-,sl=2,jmthd=8,sbt=6,mkj=8,vnk=3,bgkjq=8,bg=2,xbx=6,mmsz-,rnxt=1,shn-,ss=3,kpqvtc-,dfz-,qxj=9,mktlhp=4,jzxp=1,hm-,vx-,bzj=1,vnhfc-,vrc=7,bgkjq=8,gp-,vq-,lh-,tnfx=4,ntg-,dd=5,znb-,vtp=4,vgln-,hz=1,lk=1,mktlhp-,vz=3,vpk-,bbsk=4,qlf=1,hgp=5,xjpbxm-,qcm=8,tz=4,lqf=2,bz=3,jfjbj=9,lfl=6,cqq=8,xzt=4,xb-,rlrlql=9,cqbvs=8,dzt-,blfx=9,rqx=5,xfn=6,px=3,chpn=7,js-,lg-,ctf=1,qcnnzx-,hsb-,xnmq=1,hpl=1,pg-,gr-,fkzq=2,rfdrk=7,tnp-,gbsp-,nq=4,vttk=1,lrpx=5,xrm=3,crb-,nglvx=5,md=2,px=6,pljg-,sjb=3,kpjqgm=9,xrm=6,slzd=6,xc-,sxlh=6,mtx-,xc-,nbtq-,plvd=2,hb-,znfd=7,ghbr=1,gkn=3,gct-,cqq-,znb=5,jsv-,txpsv=6,dk-,dbh=7,lmlx=6,lcr-,bfz=4,xhs-,cjb-,tkpb-,dkms=4,sh-,fkzq=3,kqh=8,dv=9,lrpx-,vnhfc-,bqpp-,pcnzf-,km=1,ssmflk-,pnp-,rsn-,cqbvs=5,fr-,kfp-,npm-,vbz-,jm=9,pgd-,trzx=6,hsb=6,qrn=3,lln=8,zl=6,qpf=8,djmlb=6,zj-,qhvz=1,kz-,bzpv-,bq=8,frgf=7,blfx-,tnp=9,lqf=3,zrs=5,lc=2,scb=6,dzfqlb=3,kmqjt=1,trg=1,fzm-,bgg-,gzrz-,sv-,qz-,zlcmgc=4,qcm=1,xhd=7,zmlr-,fnv-,xdfz=9,fx-,xfn=7,zdm-,fr=7,tfd=1,njvd=4,vnk=2,xbx=8,xp=3,zbgdxg-,lxmkfx-,pbmldc-,znfd-,znb-,xh=5,ccf-,lxmkfx-,tgqp=6,ng=6,kz=9,hlg=2,mmsz=9,vdf=1,vkh=9,cvc-,sfp=7,ckb=6,gxg=9,cggz=2,clg=8,zn=6,ctf=6,zdtz=1,ddxn=6,nhsvv-,plvd-,sbx-,ncjb-,lc-,pvv-,vpxv=3,mhh-,qgm=6,vbmk=8,rb-,gxx=7,pt-,qpx-,gcbtgm-,xf=4,xfn=1,tv-,mmn-,zrs=6,zm=7,pxvxlh=5,xc-,dbsf-,scbpb=3,smtd-,fsz-,znjg=3,rfdrk-,ccs=9,mgt=5,mjjk-,vsh-,sv=8,cgp-,gf=1,pg=5,mph-,ctp=3,vblpd=7,gbsp-,gf=3,nbtq-,vjsg-,jsv-,lqfv-,np=4,xh-,tq-,xs-,vk-,hb-,mmn-,vbz-,kpjqgm=5,dkz-,rzjkqp-,tvm=3,dz-,kftx-,khn-,nj=2,cnn=3,cl-,sf-,vc-,zmlr=3,lxmkfx=3,blfx=9,vbmk=6,tpnmp-,sqjgc=5,rz=2,bszd=6,kkc=9,dnkf-,lmlx=7,ddxn-,bhfh-,gflrmd-,xb-,mmn=2,jfjbj=1,zm-,sqd=4,kl-,dfz=4,ktj=5,lxmkfx=2,qxkrd-,dp=6,hl-,lqfv-,kx-,vbz=5,qf-,sv-,kpqvtc-,vhx-,ps=1,fr-,vbmk-,bnhz-,tj-,rlrlql=2,np=4,vs-,vbmk-,pmz=3,pbk-,zxt-,ck-,xf=2,jtsdd=7,ng=1,gn-,qfb=5,mf=4,xb-,rc=7,jjd-,xv=6,gzrz-,cqq=5,dzt-,scb-,plvd-,vqbp-,mvmqfm=3,pr=1,nj-,pvv=8,xtsd-,gbsp-,hnf-,fdfc=3,zzd-,kftx-,pbk=3,lrpx-,hbmt=4,mktlhp=2,ld=4,sf=4,rxv=1,kkcd=9,dph=7,ssmflk-,vnhfc=1,hrbj-,ljsvc=6,rt-,xf=5,tq-,npm=1,kkcd-,spm=7,ljsvc=4,lpd-,nh-,cnr-,xmxf-,cxq=6,mjz-,hpl-,lh-,grlkl=7,pv=9,pqf=1,zsx=7,vbz-,vgln-,dvz-,zl=6,js-,rqx=8,hdxvhr-,pkg-,tzjln=1,nhsvv=7,ggm=5,zz-,kmm-,zngsp=5,gqsr-,cnn=8,vrc=3,zxt-,txpx-,jmthd=9,gbsp-,gn-,zrq-,ss=5,xjpbxm-,ssmflk-,sr-,kl-,gp=9,mhh=7,bpqv-,mvmqfm=6,vr-,kmqjt=4,xnmq-,hvglb=5,qpf-,xb=5,jgmnxd-,sfp-,sscn=8,pcnzf=4,rr=7,gqsr=4,xs-,ql-,pxn=6,jf-,ckb=6,ps=7,bzpv-,qcm=5,gf-,vk=8,hlg-,kjrc=4,dnkf-,kjrc-,qgm=7,pt-,mmn-,dphx-,dsg=8,brp=5,lq=6,kpqvtc=8,xhs=1,tz=1,rm-,qht-,jhl=3,mr=1,tj=4,pnp-,zngsp-,lcr=5,fr=9,vgln-,bz=1,nfgp-,xzt=1,xzbz-,cqzt-,vblpd=9,mg=6,dd-,xtl-,mf=7,qln-,qxj-,mgpp=7,cb=7,zf-,pkbv=2,fgmpc=4,lc-,dmp-,zxt=1,db-,hrbj-,vnk-,smtd=1,cjb-,dtt-,zlcmgc=1,kkcd=9,xh=3,sqjgc-,td=9,npm-,cqbvs-,hj-,sf=2,zf-,mph=7,zcjvl=4,dkms-,rgh=6,zzx=4,hm=4,tz-,vr-,vf-,cqq-,bgh=1,sn-,vbz-,sxlh=3,xtl-,lqt-,kd-,mg-,vf-,lg=5,fnh-,gbsp-,ksn-,mlcn-,vqzhc=8,gzrz=6,lcr=3,qxj=1,hpl-,dphx=5,js-,fm=5,vgslz-,vf=5,ns=2,qcm-,ds-,pr-,vqfz-,hl-,mnphn-,ctp-,qht-,dv-,kd=1,lrpx=9,bpq=1,qgm=9,ckb=6,zf-,vps=5,gbkt=3,zk=4,lztd-,tpnmp=9,rr=9,rpgj=5,dbffb-,mvmqfm-,fzm=8,bpq=9,lxmkfx-,sf-,br-,jxj=1,snpgsm=2,bj-,fsz-,vjsg-,gxx=4,hbmt=1,gflrmd-,rtj-,zl-,snpgsm=7,ppq-,vrzjf-,dv-,njvd-,sxlh=1,xgr-,tv=8,kmqjt=2,cfnbp-,xxj=1,zngsp=5,cqr=1,jc=9,gr-,qxkrd-,xzbz=9,xnmq=1,zcjvl=1,vjsg=4,fx=2,srp=2,kpfr-,bbsk-,xqfrg-,tvm=1,pqf-,fdl-,ss=5,bnlpjk=6,dphx=6,vbz=4,grlkl=7,gxx=1,lrpx=3,drls-,dph=8,vs=4,sbt=3,jpc=5,pbmldc=8,ddxn-,br=3,qln-,rvcd-,dmp=5,dhh=5,fjh-,sn=6,txpx=2,ctdbt=1,rzjkqp=7,bzpv-,gt=6,sb=8,qht=9,kpz=2,hvglb=8,mr=3,fq=5,jm=5,rzjkqp-,ndmt=6,bzj-,lg-,ks=1,npm-,vqbp=4,lcr-,km=9,tv=6,thncf=6,bxx-,vq-,rpn=6,dz=2,tcs-,mr-,kd-,spfc=8,npm=7,hrbj=1,cggz-,jjd=7,drs=6,vr-,rfdrk=4,kc-,pkbv-,zmlr=1,lqt-,hsb=1,xb=5,pljg=5,bq-,gxx=5,vrzjf=9,xhs-,xk-,vdf-,lg=6,xrb-,vc-,pbmldc=5,js=5,ld=4,sbt=4,gftx-,kpz-,khx=1,mr=9,lztd=7,xqv=8,cb-,sbx=6,qpf-,vgln-,xcq=9,jf=4,zs=2,cv-,vqc-,vgln=3,bmnlf-,nsxz-,vttk-,jx=1,tnfx=9,zv-,fdfc-,rc-,lhks=4,zlcmgc-,grfxxs-,hrbj=4,vqt=8,ts=5,hd-,tq=8,bg-,mf-,pcnzf-,sh-,trzx-,xb=4,rc=8,bzj-,pkg=8,hlg=5,qcnnzx-,ck-,mjz-,vth-,mgt-,cct=1,bkxf=8,rpn=1,mg-,fjg=3,vlv-,zngsp=8,ksn-,hnf-,dbh=7,pxn=5,hsb=8,mq-,jsv=7,ccf=1,ts=8,kz-,xgr=5,xbx=5,sqd-,fpg=8,lvs=5,smtd-,zs=3,dsdm-,nrc-,jtz=8,jxj=3,sv=3,mlcn=9,psfnx-,kpqvtc=9,rsn=4,zdl-,lztd=4,vnk=2,dmp-,sscn-,zj-,dd-,zdl-,smtd-,tj=3,ggm=6,ff=2,zzd-,pfjml=7,chpn-,mjjk=4,spm=7,sfp=6,xbx-,dbffb-,sh=9,hnf-,pmz-,rzjkqp-,hb=8,bj-,hgp-,txkh-,znjg=2,vqfz-,vgln=2,zzd-,crb-,vqt=3,ssmflk-,bqpp=4,xt-,dbffb-,bhfh-,hsb-,rvcd-,sbt-,txpx-,jtz-,cb-,dp-,mvmqfm=3,ddxn-,msbfzl-,xgk-,jpc=5,phsl-,dbffb-,zcjvl=4,tvm-,pv=2,sfp-,nnn-,jmthd=2,qcnnzx=3,xnmq-,tgqp-,fzm=3,jpc=2,cnn-,jhhqj-,mvmqfm-,rtj-,km-,lk=6,slzd-,chpn-,xb-,tpnmp=9,vkz-,lqt-,vf-,gbsp-,cmpc-,xc-,pkg=5,tz-,dzt-,mvmqfm-,dvz-,lhks-,npd=6,lfg=7,bgh-,vqbp=5,grlkl-,lvx=4,mgpp=1,znb=6,zf=4,lfl-,cr=2,dbffb=3,jzxp=2,mhh=2,gftx=7,lfg-,gkn-,xb=5,djmlb-,qln=8,zmlr-,dkz=6,grlkl-,rt-,zcjvl-,vblpd-,lztd-,lfg=2,gxg=6,bj=8,zs=9,ssd-,lcr-,tqx-,ncjb-,kmr-,trg=4,kmm-,cjk-,tq=7,qqp-,scbpb=1,rc-,xzt=1,ftz-,sjb=2,rknz=4,gbsp=4,qrn=3,dhh-,mph=1,pjfk-,grfxxs-,xfn=3,bq=6,kd=3,vjzt-,vgln-,rv-,lcr-,blfx=4,gzrz-,kmm-,hj=8,pvv-,khn-,jfz-,gr-,gr-,dhh=9,ps=3,vblpd=9,sqd=3,hz=7,mp-,lxg=1,bnlpjk=3,jjd-,txpx=7,fx=9,nkx-,bg-,rvcd=4,sr=6,qz=3,vdf=9,ld-,nsxz=1,zdtz-,dzn-,hb-,vjzt-,nfgp-,cmbv=6,pljg-,sqd=1,ssd-,fzm-,qv=8,tn-,cct=8,cnn=2,vkh-,zl=8,xcq-,ppq-,scb=5,pbk=6,jmrz-,xgr-,kpjqgm-,nglvx=5,qht-,fnln-,cl-,kkc=9,kpfr-,xtl=9,dsg-,xrb-,zdm-,mmn=5,tz-,gh-,vkn-,vkqx-,gkn-,qxkrd=7,rt=7,rh=3,bc-,nzq-,mtx=8,jc-,kfp-,dkms-,thnmq-,jhhqj=6,vhx=2,lqfv-,kc-,vqzhc-,bzj-,fmkjj=5,ql-,fdfc-,kftx-,ktj-,bgh=2,cqzt-,rtj=2,vkh=2,dfz=6,xstdx=9,npd-,hf=8,jhhqj=1,snpgsm-,xrb-,hm=5,bx=1,ql=2,djmlb=7,xcq=6,xbx=4,kl=9,dk-,sh=7,ctf-,sqjgc-,thnmq=7,lhks=9,xdfz-,tk-,pt-,vgslz=7,dtv=5,sbt=9,kv=1,drs=3,db=8,lqf=6,xhd-,qln-,ckb=2,kpn-,qvlzn-,fb-,xcq=3,vqc=2,ct=4,dtck=5,vgslz=9,shn-,rv-,cr=3,tpnmp=1,cct-,zj=8,bnhz=4,psfnx-,nnn=8,kl=8,ps=5,ng=6,cnr-,snpgsm-,dnkf=9,znb-,bgkjq=1,pjfk-,pl=9,dtt-,sqd-,hgp=7,gs-,qrn=8,dvz=4,kftx=7,ggqq-,cl-,cr=9,jsv-,vjzt-,pxvxlh-,kqh=1,tqx-,lvx=9,mf-,rpn=2,bpq=4,km=4,vnk=6,cqzt=9,bxx=8,tn-,pgd=8,dp=7,thncf=8,zdtz-,vgslz=5,cnr=7,nkx-,hdxvhr=6,tj=6,xnmq-,qf=4,lq-,vnk=7,rpn=4,zd=8,rxv-,lln-,sbt=6,mhh-,rz=5,dtt=9,gxx=7,pnp=2,lqt-,xdfz=7,lhks-,gflrmd=8,kpqvtc=3,tj-,pvv-,xcq-,xfn-,kpjqgm-,kc=6,zngsp=1,vpxv-,xfn=1,qqp-,tj=2,xrb-,zsx=4,lfl-,vqc-,nq=9,lrpx=7,rpn-,phsl=7,chpn-,vq=6,dd-,ff=1,lztd-,lq-,vx-,lg=3,jmthd=7,vnhfc-,jgmnxd=6,fpg=3,xs-,ggqq-,msbfzl=7,znjg-,xt=8,xzt=9,ff=3,mmn-,dmp=7,hrbj-,vth-,dkz-,nsxz-,bnhz-,bq=2,hm-,dm=7,trzx-,xmxf=1,npm=7,qqp-,fnv-,bzpv-,hnf-,ztk=4,hz-,bx-,srp=4,sqd-,zk=5,gbsp-,fsz-,vlv=6,hpl=5,jgmnxd-,rtj=9,lh-,qhvz-,vkn-,blfx=6,sc-,rqx-,tslfp=6,zdm-,fsz-,mm=5,lc=5,ghm=6,ktj-,kl=6,dph=6,ztk-,cb=2,kz-,psfnx-,mq=4,vqc-,dph=9,zj-,js-,znb-,vqbp=9,dx=2,dtck-,gt-,br=6,zrq-,bqpp=5,ckb=6,ng=9,zdm-,jc-,lvs-,ql=9,zf-,sc=2,dph=9,bz-,vbz-,khn=6,kmr-,drs=7,kx-,vlv-,pljg=6,vpxv=6,fsz=5,vqbp-,tcs=5,qz=9,xp=2,xp=7,kx-,ssd-,bz-,vs=5,mgpp=8,rnsbt=1,hdxvhr=4,rz=9,nq-,ktj-,pv-,cmpc=5,psfnx-,pqf=9,tv=4,jpc-,jfjbj-,vps=6,bszd-,jx-,xhs=2,cfnbp-,cb=6,nfgp=8,mg-,fjh-,mtx-,vrc-,cr-,njvd-,lffv-,qqp=4,cr-,js-,jx-,pgd=9,qg-,vsj-,bnhz-,sjb=1,nglvx-,fkzq=9,qhvz-,nlcrm-,kmm=2,jzxp=2,zrs-,mtx=9,hnf-,lk=5,nq=2,rpgj=1,tkpb=7,zzx=7,pnp-,rgh=1,qhvz-,zpc=1,pmz-,nhsvv=5,zqr=6,cggz-,lhks=3,bpq-,tfd=7,jm=4,kpjqgm=9,qxj=8,pv=8,pmz=2,jf=2,gxx-,jf-,mktlhp=1,lrpx=2,lqf-,scbjp=3,fdl=7,khn-,ddxn=7,dzn=6,chpn=5,vpxv-,kl=8,sqd-,vnk=9,vbz-,cqzt=9,lc=4,nhsvv=7,ph-,bz-,xzt=7,cqr=8,spfc=3,vsh=9,bbsk-,khn=1,bl-,lffv=3,pl=8,zdl=7,qg=2,vkz-,qht=9,xhd-,blfx=5,vbmk=5,npd-,zv-,bpqv=2,tvm=6,xqv-,zv=8,dbffb-,trg-,cqbvs=2,vqbp=4,kpfr-,ql-,cggz-,kpfr-,sbt-,plp=2,fsz=3,ct=1,zcjvl=6,rpgj-,nfgp-,zqr=4,zn-,mq-,ps=8,rtj=4,kpqvtc-,ndmt=3,plvd-,xv-,rt-,fb-,psg=8,sxlh-,nhsvv=4,pkbv-,vrzjf=7,dzn=7,mmn-,jfjbj-,vnkmzj=6,dp-,rh-,cv-,dzn-,lg-,rpgj=1,dph-,ctdbt=3,cfnbp-,gxx=8,hj=3,xnmq=4,lc=5,bb=9,zdl-,zzd=9,hzlzn=9,dz=9,rz=9,bzj-,xb=4,lrpx-,vlv-,dph=1,cqbvs-,ghm-,pcnzf=2,vr-,cct-,mph=2,nsxz-,ssd=2,hfrdk-,psfnx=9,rc-,pbk-,znb-,zmlr=1,dk-,dkz=3,rqg=3,mv-,zv=9,sscn-,bszd=1,xhs-,dzt-,mgpp=3,dnkf=6,tnfx=9,drs-,spfc=3,dbsf-,sr-,lfg-,bg=2,gbkt=7,jxj-,tv-,fjh=9,fdfc=5,gs-,vbz=1,dbsf=9,zdtz=6,fgmpc=2,njvd-,hfrdk-,sh=8,scbjp-,zn-,msbfzl-,px-,spfc=6,vdf=2,vc-,vlv=2,cqq-,vhx=1,hl=3,vkqx-,fx=7,gct-,vrc-,hpl=8,zm=1,ktj-,xmxf-,rqg=7,zm=8,cqq-,zlcmgc-,kkcd-,dtt-,jmrz-,gf-,xzl-,pcnzf-,tslfp-,pxn=2,ccs=5,lmlx-,cct-,vgln=4,xt=3,gxg-,vq-,dz-,vqc-,bgh=6,zbgdxg-,ctdbt-,mg=6,fb=1,xbx=1,xv=2,lvs-,kd=9,slzd=2,xb=3,mvmqfm-,kv-,jfz-,jc=8,mgpp-,shn-,kpn-,scb=9,txpx=5,zf-,vhx-,rnxt-,pxn-,mg-,gftx=6,fsz-,xnmq-,bz=4,nfgp-,gkn=7,bnhz-,qpm=1,vhl=5,pm=1,spm-,xfn=8,xf=9,vqbp-,trg=1,pkg-,lrpx=4,mf=7,rpn=7,vqbp-,vdf=8,zz=5,tslfp-,dz=1,fjg-,cb-,zqr=3,clg-,js=2,xjpbxm-,fnln=4,pgd=7,hzlzn=6,qrn=4,khn-,psfnx=7,grfxxs=8,lvx=4,spm-,zl=6,grfxxs-,trg=1,lmlx=2,rsn-,rb-,cnn-,zdl=1,mmn=8,rr-,scbjp-,zk=2,xrm-,lc-,pkbv-,ss-,qhvz-,fq-,bnlpjk-,kkc=8,fpg=7,tgqp-,jzxp=8,rm=2,plvd-,lfg=5,jmrz=9,vk=7,spsx=2,spfc=5,plp-,cfnbp=6,jzxp-,fjh=3,xjpbxm=4,br-,nrc-,sn=3,rc-,lfl-,plt-,np=5,bgg-,xf=4,vlv-,vrc=5,cct=5,vps-,xzl=9,nnn-,pvv=9,dmp-,sf-,hm-,vtp=7,cqr=7,kv-,rnsbt-,qcm-,dvz=1,dbffb-,dbh=4,bzj=9,ctdbt-,tnp-,ksn-,dmp-,qz-,lxg=6,dtck=9,lvx-,bfz=6,xgk=7,qpm-,ggqq=2,grfxxs=3,msbfzl=1,xqfrg-,nlcrm=5,hzlzn-,rfdrk-,xhs=8,xnmq-,pbk=9,jsv=9,zk=8,dtck-,jtz=2,nhsvv=6,ddxn-,ks-,tcs=1,jsv-,xb=1,ff=1,scbjp-,mjz=7,pbmldc-,tcs-,xhs-,plt=8,zs-,xbx=6,bxx-,qcnnzx-,dkz-,dvz=2,rh=4,mhh=7,djmlb=7,bnlpjk=8,jgmnxd=9,pzd-,lffv=2,xqfrg-,cb-,tzjln-,bfz=1,fnh=8,xf-,cqbvs-,lqfv-,ld-,jtz-,nj=8,cjk-,dsdm=9,thnmq=2,ck=8,bpqv=4,rgh-,mf-,sqjgc=8,rzjkqp-,dvmm=8,zthrd=2,mtx-,cqzt=6,gct-,spfc=7,trzx-,hlg-,rqx-,lffv=5,vf-,bqpp-,nhsvv=8,kpfr=2,dfz-,cnn-,gkn-,hb=2,vnk-,px=2,hxd-,zthrd-,xv-,jzxp-,vkn=7,cxq-,ccf-,xfn-,lxmkfx=5,pljg-,lqfv=5,rfdrk=9,khn=5,cnr-,vr=9,kd-,ssd=5,mmsz=7,fnh-,mf=8,lvs=3,vgslz-,pfjml=7,dtck=8,dph-,gk=4,ntg-,lpd=2,fnv=1,mnphn-,xzbz=1,zd=8,gf=1,tr-,lpd=9,vjzt-,ss=7,qnd-,db=2,vz-,lxg-,khn=3,vkqx-,fjg-,zrs-,tnp-,rc=9,fdfc=4,tqx=1,scbjp-,nbtq=6,kmqjt-,jc=9,txpx-,pr-,vps-,zv-,vnhfc-,jmthd-,blfx=1,vqt=4,spfc-,tzjln-,cfnbp-,zf-,ndmt=4,xqfrg=2,cmbv=4,mtx-,ktj=5,nh=1,mm=6,xv=5,ng-,bfz=2,zj-,pt=6,njvd-,qcnnzx-,qgm=8,fjh-,zqr=9,tn-,zz-,mvmqfm=9,gt=3,vgslz=4,px-,fnh=7,njvd=8,jtsdd=2,rzjkqp-,np-,ph=5,zqr=6,cb=6,sxlh-,pfjml=2,dmp-,lxmkfx=2,kpqvtc=4,mvmqfm=1,rknz=8,zcjvl-,tq=1,nnn-,vc-,zdl-,ndmt-,dtt-,mf=4,qcnnzx-,zzx-,pkg=6,xfn-,rnsbt=8,rgh-,vp=2,vpk=1,zz=2,mkj-,mr-,lln-,dm-,cfnbp-,sbx=9,dsdm=1,kpqvtc-,zzx-,bqpp=9,lqf-,cqr-,mlcn-,spm=1,dhh=6,js=4,pg=1,vbmk=3,vqc-,ftz=4,zxt-,zz-,xtl=6,pr=9,cnr=8,rqx=4,bszd=3,rl=6,phl=4,dvmm=2,drs-,bnhz=4,cggz=7,nhsvv-,cnr-,bgg=4,tr=1,pjfk=8,fq-,kmm=2,jjd=9,dbsf-,sxlh-,xzt-,mjjk-,pfjml=8,lmlx-,xtsd-,ftz-,nq-,kd=3,tk=2,vth-,nrc=4,vqbp-,grfxxs=1,ssmflk-,mmsz=6,lh-,td=2,vc-,qht=1,ccs=3,fpg-,ff-,ppq=2,cl-,ff=9,gk=1,zzd-,mv-,pqf-,vq-,vtp=1,thncf-,gt=7,ksn-,bnhz=8,xmxf-,ktj-,cnr-,ctdbt-,cggz-,vps=8,ff=1,jhhqj-,hd-,dphx=3,zk-,bg-,pkg-,gh-,nl=4,dtv=1,ph=5,xk=4,sbt-,sjb=4,tslfp-,kftx-,gxg-,mjz=9,bzpv-,dvmm-,zlcmgc-,mvmqfm-,jmrz-,sf=3,zz=4,vsh-,kfp=9,cggz=4,pm=4,nlcrm-,pg=9,xhd-,spsx=9,xmxf=8,bbsk-,pr-,qhvz-,vqfz=7,dp=5,ndmt-,nlcrm-,mgt=8,gflrmd-,vkn-,jsv-,qrn=7,gk-,rc=9,qvlzn=2,xtsd-,xzl=8,vdf-,fb-,mr-,vrc=2,qpx-,bmnlf-,scbjp-,vpk=5,vjsg=3,rvcd=7,tk=2,xstdx=9,tcs-,zqr-,kpfr-,rz-,vgln-,dvmm-,lqfv=8,bszd=3,nglvx=9,lq=5,dnkf-,sfp=3,pxn-,blfx=6,zzd-,sbx-,dfz-,fq=2,qqp-,rtj-,sb-,nbtq=2,bb-,zpc=6,tfd-,zl-,scb=4,nfgp-,kftx-,zn=8,rh=3,fzm-,qvlzn=3,ctp-,qrn-,ztk-,pmz-,rh-,vpxv-,lvx-,cq-,jmrz=8,sqd=2,kftx-,ppq=7,dvz=3,vblpd-,jgmnxd-,gxx=6,vnk=5,ntg-,sjb=3,dkms=3,bgh-,zsx-,xrm=8,pkbv=7,vttk=7,lxg=5,jm=9,vqbp-,kfp-,hzlzn=5,hl=4,trg=9,lq=7,ksn-,mmsz=5,px=2,lcr=4,td-,hfrdk-,rnsbt-,qln=3,dvmm=6,gftx=6,ppq-,xbx=8,pvv=8,xcq-,tzjln-,tdl=8,vf=9,sxlh=9,bgh=5,bqpp-,zxt-,xs=5,kmm-,ps=5,ctdbt-,hd=4,md=7,xzl=5,jfz-,tzjln=9,gpg=5,lmlx=2,phsl=2,jx=3,lfl=4,kpfr-,db=9,fdl-,rm=3,bqpp=7,mp-,xv-,bpq-,pg=1,nlcrm-,xk-,mq-,lk=7,hrbj=1,hj=1,ss=8,hnf-,xqfrg-,tnfx=9,znb=8,kl-,lqf-,dsdm-,khn-,cct=4,bzj-,spsx-,lc=6,jfz=4,plp-,fb=1,bgkjq=2,pvv-,br-,cfnbp=5,sqjgc-,sv=5,mmsz-,dd-,lrpx=5,mgt-,hdxvhr=1,dsg=6,zz-,gkn-,fjg=7,px=4,lfg=7,jfjbj-,ghbr=4,ftz=1,lffv-,pjfk-,spfc-,mlcn-,vth-,qxkrd-,ctdbt-,qpx=5,gqsr-,sscn=7,ghbr-,vqbp=8,bgg-,zf=2,qxj=8,bpqv=6,hlg-,tn-,lfl-,bzj-,tk=4,ql-,gxx=6,gqsr-,mtx=1,rqg=7,zzx-,lcr-,bx=7,nl-,msbfzl-,bhfh-,sxlh=7,nsxz=8,bgg-,pfjml=4,pv-,qv-,kx=4,dp=5,gxg-,qpx=9,mjz=5,zxt-,tv=4,kx-,xtsd=7,txpx=4,hdxvhr=7,pzd=2,vqc=4,xjpbxm=3,dm-,rvcd-,ps-,hbmt=9,nsxz=5,cct-,xhs=3,cqr-,fm=3,pzd=5,qxkrd-,rz=8,pgd-,txpx-,xk-,hnf=7,hlg-,lcr-,nqcj=9,pgd-,spm=3,zk=5,jxj=9,vth-,srp-,sbx-,cs=1,vpk-,srp=7,sqjgc=7,ks=1,dvmm-,zqr=6,gbkt=5,rl=1,phl-,mg=9,rm=2,dsdm-,rz=2,pgd-,gf-,bxx-,nq=3,vtp=6,sbt=9,kpqvtc-,qcm-,td-,bnhz=3,rknz=6,mjjk=6,qf=9,thncf=5,bb-,vjsg-,cnn=6,jxj=6,vkn-,gbsp=3,kpfr=1,lqfv=6,kv-,gt=1,fq=4,kl=4,rtj-,vth-,pfjml-,hbmt-,vr=1,xmxf-,sc=1,cgp-,jx=1,chpn-,xcq-,vttk-,vpk=1,mnphn-,mtx-,gxx=1,cgp=2,qvlzn=4,sr-,ct-,rh=3,rzjkqp=2,ld=9,pljg=6,vlv-,rgh-,spfc-,jm=8,fkzq=4,xmxf-,gp-,chpn=8,xtl-,cggz-,xnmq=3,rnxt=1,znb-,nfgp-,ts-,bqpp-,fnln=3,pljg=5,hz-,kfp=4,cq-,bgkjq=9,vs-,zngsp=7,jsv=3,dbsf-,kx=4,ph-,xb-,dsg=6,sn-,jmrz=4,dzt=7,mnphn-,vk-,kkc-,kpn-,vblpd=6,vqbp-,dmp=6,hsb=1,zlcmgc-,vbmk-,dp-,tk=3,drs=8,pl=4,sbx-,jhl=9,rknz=5,qcm-,mp=8,vqfz=9,ctdbt-,qp=2,vsh=8,nkx=8,qxkrd=6,bpqv=9,cxq=3,nbtq=1,sxlh=4,fnv=5,vnkmzj-,gpg-,nh=8,zd=1,rzjkqp=6,qpx-,bzj=2,fkzq-,lxg-,bb-,lffv-,xs=3,rzjkqp-,bpqv-,bz=3,zn=5,br-,zthrd=5,kc=2,ss=2,kf-,bb-,bz=6,hb-,dtck=4,sxlh=9,mmsz-,znb-,mhh=3,nhsvv-,ntg=1,bqpp=2,thncf-,tnfx=8,nglvx=1,bzj=3,gcbtgm-,cmbv-,ctp-,pg-,zpc-,rpn=1,gn-,ncjb=8,kmr=3,tz-,bnhz-,dvz=2,mvmqfm=5,jc-,plt=6,cl=8,vc-,qgm=2,ss=5,jc-,cggz=4,chpn-,qln-,nh=8,pljg-,km-,pgd=7,tqx-,xhd=2,gmrrx=3,bhfh=6,bx=3,msbfzl=2,rm=6,qcnnzx=9,xgk=6,gct=4,kpjqgm-,jx-,tgqp=4,sv=2,xf-,ks=9,pzd=6,zrs=3,md-,thnmq-,zzd-,xnmq=3,rc=2,kmm=9,rz-,jc-,rsn-,dphx-,bqpp=7,vs=2,kkc-,sqd-,tdl=9,zbgdxg-,qgm-,gmrrx=7,cb=4,bx-,lvx=8,slzd=1,fzm=5,cs-,xs=5,xxj-,xhd-,qcm=2,xxj=6,vz=8,cqzt=2,fdfc-,vx=6,rpn-,gxx-,nhsvv=6,mktlhp-,vjzt=4,lztd=7,zs=7,mv=2,nlcrm-,tkpb=9,sxlh-,pv-,qxj-,xcq=8,xgk-,scbpb=3,dk=9,mjjk=3,lztd-,njvd=8,znjg=5,lxmkfx=5,snpgsm-,ph-,pr=1,rpgj=4,nzq=2,kc=2,rsn-,dzfqlb=6,gf-,qcm=1,tcs-,mm=2,fjh=6,vp=6,sl-,kfp=4,tslfp=9,hl=1,fzm-,lmlx=2,bnhz-,sfp-,pcnzf-,gct-,jc-,xk-,zpc=2,jxj=6,tzjln-,bqpp=5,pjfk-,cct=5,qgm=8,sxlh=7,lhks-,mmn-,rpn-,vp-,qnd=9,mjz=2,td-,gct=6,sfp-,cb-,tnb-,zf-,chpn-,pkg-,gs-,mmn=2,mnphn=9,pxvxlh-,fm-,vdf=2,vnhfc-,njvd=1,npd-,cl-,vhx-,kz-,hl=8,bpqv=7,ks-,pl=6,txkh-,mjz-,bl=1,cqzt-,bbsk=7,ghm=3,tpj=4,tv=2,qf=7,tpj=7,ztk-,mq=2,jtz-,vkn=4,cs-,xdfz-,ccf-,lxg=9,ctdbt=1,trzx-,bnhz=6,gf-,kjrc-,vr=1,msbfzl=2,vblpd=6,qxj=7,cjk-,nj=4,cjk-,sjb-,ng=4,rnsbt=4,rtj-,frgf-,tqx-,sbx=9,kmqjt=8,rfdrk=8,ctdbt=5,mldgtn=8,rfdrk=7,pnp-,phsl=3,vc-,hz-,rzjkqp=9,njvd-,qqp=7,pjfk=1,sscn=2,pkbv-,lfl-,vp=5,kr=4,ccf-,plp=8,lpd=5,mph-,rh=6,zl-,lc=2,jhhqj=5,xf=6,snpgsm-,lq-,sxlh=6,vsj-,trg=1,cl=1,vjsg-,gp-,tn-,mlcn=8,gmrrx=5,qfb-,fx-,tzjln-,tfd=2,bg-,bkxf-,qpm=3,npd-,ssmflk-,fpg-,rknz-,zngsp=1,nlcrm=4,pt-,vkz-,mq=7,mldgtn=2,gr=7,fr-,xzt-,mkj-,jmrz=5,lxmkfx-,pxvxlh=3,vbz-,nq-,sbt=8,rtj=8,ktj=3,bpq-,mq-,lqf=9,vp=7,vz=1,bb-,ndmt=4,vdf=7,mr-,fnh-,rzjkqp=7,sxlh-,bszd=1,vgslz=5,zd=2,tpnmp=6,fr=2,bgg-,lk=1,qpf-,bpq-,xt-,ps=7,pxvxlh=1,fkzq=7,mgpp-,cqzt=6,bbsk-,clg=7,ztk-,bl-,vjzt=4,tk-,plvd-,jsv-,zd=7,dm-,gxg=8,lxg=2,bgkjq-,np=4,frgf-,lh-,ssmflk-,bc-,vjsg=9,rfdrk-,jx-,pbk=7,npm=5,kjrc-,jfz=8,bz-,bfz=3,ld=6,hj=4,msbfzl=4,clg=2,vhx-,vq=1,hb=4,mmsz-,sbx-,xnmq-,cqbvs=8,hgp=5,qlf-,nfgp-,ztk=8,vnkmzj-,cmbv=9,jjd-,rz-,bl-,jfjbj=7,hxd-,tfd=6,sh-,frgf-,ctp-,sjb=7,vsh=6,br=7,vz=9,px-,lrpx-,fzm=3,tslfp=9,znfd=5,bpqv=2,mktlhp=2,hm=9,znfd-,xgk-,xdfz=7,gxx=8,vpxv=3,qfb-,qnd=1,gpg=1,txpx=4,zmlr=4,zk-,plt=5,dx-,qfb-,vqbp=2,hzlzn=3,bfz-,mgpp-,xf=1,fgmpc-,rl=9,fjg-,qpf-,tslfp-,qvlzn=3,gbsp-,scbjp=1,mktlhp-,jhl-,fdl-,jmrz=1,rc=8,dmp-,clg=2,xtl-,cqbvs-,qfb=9,lpd-,kmr=3,xh-,lh=4,spfc-,cnr=1,lqfv-,scb=7,kd-,rqx-,tpnmp=5,pjfk-,qz-,gf=7,tz=9,kjrc=5,td-,bl=3,dmp-,ccs=9,rzjkqp=5,npm-,kpn-,pljg=6,dsg-,bg-,mhh-,mvmqfm=4,xzl-,plp=7,tk=6,zn=7,njvd=6,lqfv=7,rzjkqp-,kmqjt=5,cv-,mf=7,gxx=3,pxvxlh=4,nbtq-,vqzhc=7,bpqv=2,sl=6,ccf=5,slzd-,ssmflk-,sf=3,vhx=8,mmsz-,chpn-,fzm=2,xtsd-,tvm=1,zk=9,hm=2,cv=1,lq=2,dzfqlb-,kmm-,rxv=5,txpsv-,nrc=7,ps-,gflrmd-,tv=6,gs=6,znfd-,kc=3,zzx=8,vc-,tvm-,rtj-,kqh-,dsg=9,fx=3,hm-,rsn-,lpd=1,zjvd-,nq=6,hgp=3,vqbp=5,jzxp=5,pxn-,js=4,zthrd=3,nj=3,znb-,ncjb-,kc-,kmr=6,lcr-,vs-,kpfr=3,jgmnxd=9,bhfh-,rv=4,ks=3,hf=9,bgg=4,fsz-,hf-,np-,zzd=8,pgd=6,kmqjt-,znb-,fb-,qlf-,zj=1,pvv-,nzq-,ng-,lmlx-,zdm=4,hvglb=9,nhsvv-,kjrc=4,hvglb=1,ctp-,qlf-,lfg-,jhhqj-,txpsv-,bxx=3,ppq=2,vhx=7,scb-,lq-,sscn=9,pljg-,gxg=2,cv=7,zm=6,hdxvhr=4,hpl-,mkj=5,zl=7,zcjvl-,xp=3,bszd-,lxmkfx=5,rgh=7,lztd-,xv=1,cjb-,rqx-,gflrmd=5,lqfv=1,fdfc=4,vblpd=6,tslfp=5,rnsbt-,tpnmp-,cmbv=6,cq=5,gk=2,zdtz=8,lhks=2,gr=2,cxq-,xzbz=7,bpqv-,cmbv=3,cqq-,bgg=2,znb=3,vkn=7,gxx-,pv-,vf=7,gbsp-,qp=6,grfxxs=2,vqc=6,lh-,msbfzl-,dfz-,fgmpc-,kmqjt=3,qrn-,pfjml-,pm-,qpf-,qg=8,vlv=4,cq=6,lq=1,tnfx=2,cgp-,lq-,vgln=7,bgh=3,ggm-,jtsdd=1,xk=2,rqx=5,zv-,mhh=2,bpq=6,fdfc=6,lmlx=7,hdxvhr=5,jgmnxd-,lvx-,vrzjf-,dtck=5,ph-,rqg=5,gf=9,nqcj-,vqzhc-,bj-,fjg-,qln-,jpc-,vnk=1,sbt-,qf=8,qrn=8,gpg-,nglvx-,dbsf-,hz=1,jfjbj-,hbmt=1,sqd=1,cl=7,bzj-,jtz-,vblpd=7,znfd=1,gpg-,drs=3,gn=7,mvmqfm-,cr=3,tpj-,ck=3,qp-,zrs-,tpj-,gcbtgm-,zv=8,lfg=8,jxj-,ftz-,zz-,fdfc-,plvd=9,spm-,fkzq-,xcq-,sqd=4,dph-,rsn=9,vjzt-,xt-,dsdm=4,qlf=3,qht=2,js-,sv-,slzd=9,spsx-,zk=1,rv-,jxj-,scb-,db-,ff=2,cq=9,nh-,fzm=1,cs-,rzjkqp=4,vx-,qp-,spm=9,tnb-,bgg-,phsl=2,lg=5,gmrrx=3,pfjml=1,psfnx-,dbsf=3,jmrz-,lztd-,vrzjf-,vkqx=8,mv-,sqd-,hrbj=8,tgqp-,sbt=6,lhks=2,vp-,mv=6,snpgsm=9,xf=3,tnb-,hl=5,vqbp=7,zd=1,fm-,hbmt=7,scb=1,txpsv=3,jf=6,rc=3,vs=7,qpx=1,sf=3,zbgdxg-,xv=7,xv-,hgp=3,nfgp-,qht=8,vblpd-,ql=9,kmr-,rtj=2,lpd-,rfdrk-,rxv=5,sbx-,rfdrk-,pgd=8,kpjqgm-,vjsg-,cgp-,fnln-,dvz=3,pbk-,mvmqfm-,lmlx-,ndmt=2,trzx=7,tnfx-,xgr-,zlcmgc=5,plvd=8,gs=5,sv=2,dk=9,vnkmzj-,vkn=3,xbx=9,kl-,psfnx=8,ppq-,vq=3,xzl-,mldgtn-,plvd=7,gcbtgm=1,sscn-,drs-,bnhz=2,lhks-,sf-,pbk-,sxlh=3,vkn=2,vqfz=9,gct=1,cmbv-,qgm=5,lg=6,tnp=6,jsv=7,mmn-,xnmq=3,vx-,fkzq=1,vqbp-,gbsp-,txpx=9,jtz-,hdxvhr=8,xk=4,xxj=3,vrc-,fjh-,pxn-,gbsp=8,hl=5,jm-,zn-,chpn-,nbtq=7,kqh-,chpn-,nnn-,hfrdk-,mp-,bgh-,ns-,vsj=3,fgmpc=1,kd-,dtck-,nh=4,frgf=3,cq-,pt-,vttk-,px-,smtd=7,ctf=8,zn=4,kl-,jjd=4,bzj=7,cnn-,mtx-,pzd=1,ssmflk=4,jgmnxd-,ccf=4,jmthd-,vnhfc=7,srp-,qxj=7,chpn-,nh=2,kkcd-,dm-,mmsz=4,fnln-,lq=6,kkc=1,bq-,nl=3,mmn-,jfz-,zf=4,sl=3,sqd=7,dtt=3,ql-,jmthd-,ndmt-,vqc=2,jjd=2,jpc=4,vrc=9,kpn-,gs-,mjz-,ftz=7,bq=5,cv-,xv=2,mktlhp=9,cmbv-,mtx=6,ggqq=7,fq-,rknz=3,xxj-,zngsp=3,rsn=5,xrb=3,vrc-,fb-,phsl-,plp-,pl=9,cr-,vpxv-,lk=4,khx-,rpgj=2,kd=7,md-,dvz-,rl-,dkz=9,fsz=8,vq-,pm-,xf=7,tv-,tk-,dz-,qqp-,bg=7,xb-,nfgp=9,ng=7,kfp=2,mp-,vbz-,lxg=5,xqv=1,npd-,pvv-,xzl-,slzd-,dmp-,jzxp-,dphx-,txpsv=7,mldgtn-,ql=2,xgk-,mv=7,rl=7,kjrc=6,rl-,jfz-,ctdbt-,tdl-,fq=6,lcr=6,hzlzn-,qpx-,nbtq-,td-,mr=8,zngsp=4,vps-,ssmflk-,djmlb=9,pxn=7,cqq-,nlcrm-,rt-,vgln=9,gn=2,nsxz-,cfnbp=2,xrb=8,ts-,bfz-,lh=1 + diff --git a/2023/_input/day_16.txt b/2023/_input/day_16.txt new file mode 100644 index 0000000..81b3afc --- /dev/null +++ b/2023/_input/day_16.txt @@ -0,0 +1,110 @@ +\..\.|.........|..|................................................................./.-............./-....../. +............../..--.../...................-....|.......................\../...|..-....\...-|...-...........\.. +.......\......................................|..-\.................-..-...................................... +........\..............|......................\........./..............................|..............||...... +.........|........|......-...........|....../....-.../.....|/.........-..../.../..........................|... +..\............................./\............................................................................ +........|....................\............................./.....|\|..-....../............/..-..........\..... +...\.........................\.............|.........../..............-..../.............../-................. +.||....../..............\.|...............-......................|-..-......../.|............................. +...|.|.....-...../.............-............./............\.\/........|.............................\|.-..\.-. +............./....................|.......|.....\..\..............................-.../....|.................. +./......./.|...............\................................................||................................ +......\......|.................|........../......|\|.......-|..................|.....-.-.||../.\.............. +................../...............|.....\........-...-.\...||..\...........\............|.........|........... +...-........|\|........././/............|...........\.../\...|.......-........\....................-.......... +..../...........\.........................../......-.|...................................../..\........|...... +\...............\/......./........-..............|..............--........../....|..-.\...........-........./. +..........\........\|.........|\.........../........................../.........|............\..........|..... +...........\....|/.|..........-..............-....-|...\..........-.../............./......................... +..\..\......../...\\....................../...../.........................|.....\..............|..\...-....... +...........................-./...................................-/.\.....\...................\.../........... +..-..................|..................-...\.......|../............./|-............/........|.......|..-..... +...........-......................-.................|............../.......-./..........|....../.............. +.........|.............././...............|..../..............|.........|.....|..\......................|..... +......./-/...................\\..\......|........................\...\....../.....................|...-....... +.....|.......................|............|...|........|...........-....../..................-...-............ +.../................../......|...........................-............|.............-........./............|.. +.-.........|.............|-...../..............................\................|........................../.. +.........../.........-.......|..-.........................-...............-...-.../...................../..... +../.......-../....................-...\...\........................-.............-...\...../.|.........../.... +............-...............|........................................../...\.|....|........-.....\|........... +.....................|\............................-..-....../..-|..../..................\................\... +.\.................-......\...|............................./......./.........-............../................ +.\.........././............../|......\/..............\........................|........................|...-.. +.............../.........|.................................-.......\\.\-..........-......................./-.. +-.|......................|.............|............................/....................|...........-........ +../.....-.......|.....-.....\.../\........|.............|.........\./..//\................|.........-.....||.. +.\..\.......|......./............\..\.........../........-.../.|..............-..../....\.........../.\.\..... +.............|..........|.........|.|...\-......................-..............|.../............./.........|.. +....|................................................../...........-......-/......................-.....-..... +............................./.........-............................./..................\..........\..../..... +.....|.....................-.........../.......|..................-.......\...|\...|......\.....\...|......... +........|............../..../|.|......-................|...../..........|................|...................- +....../.....//..........\.-|......|.....|..................../..............|................................. +\.-...-....\..................\....................|............||............................../............. +............................-|...-...........-.../......-.........\..-...|.|\..........-...............\.|//./ +....../......././.|...................|\........../.\.../-...\..........\.-..|\../...........\....\..|.....\.. +...............\.../..../.................\.......-...........\..|..................\\................./.\.... +............-..........-......................|.......|..|....................-......|......\...........|..... +...............\......|.-............./............\.../.............-|........./...............\|\.....|..... +.\...............|.................|...........\......\................\............\.|...\......./........... +\...|..............-..........|...................|....-.....\......../..........................\........|..| +.........|........./.........|....-........-...................../|./.--.......\........................-..../ +..........................-.....-...............-/............................--...../........................ +.....................-.\../\..........|.....................\.......\.../..........|.............\............ +......................../..\.......\...............................................\./........................ +....|......\..|\.-........../......................\|........\...............\.................|.............. +............................./.....|..|............-...\.........-...\....|......\.............-..|........... +..................-......-.....................-...........-......\...-|-.-................\............|/.... +...|....../............../..\.......................-....\...|.....\..|..\......./.................-.....-.... +.........-........|........../..-................................./....-.................-.................... +.............................-.......\...............\.....|......-....-.../.................\................ +...../......|...................|..............-........./.............\...\....|.............\.......|....... +.......|............./........./......\..../........|...........\................................-............ +/...|././.......|-.|..........|................................/\.\.......-......-........-........\.......... +../................./|.-...\........................|........|........|...\|.\........................./.....- +................-.........../|..............|.|/...|\...........-.......................-..|../............... +./..||........|....../........................|.................................../..............\..|./-...... +/..-...../......................................\-...........-..................\|................../......... +.............|.-......................|................-../.................-............../..............-... +-.....-|-...............\..........-...........\.......\........................\.........../..../...../...... +.-..................../..........|.--.............................-..-....|.\................|....|...\......\ +......./.-........................................\....|........|...../...........|...\|..-................... +\...............|........|.......\|..-..|...-..|-........|........./.\........................................ +/.|./....|....-...../\..|...............................-.../........./.............-|.........-..../.-..\.... +../......./...../..|........|../.....\....\.............-.-.................-...\.......|.\...........\....... +...-........./.............../..................\.|................/..//..................|.......-..\......-. +./.............../.-..\..........|.............-....................-....-..|...........-..................... +...........|-..|........................................./\............./-.../.................\........\..... +................................/...........................\.....................|.|......................... +.........|............\........................................-...../..........|........../.../......\...\... +../.........|......./..................|........\.../.\.-...-......../../\......../................../........ +.-........./.........|....|.|.............................................|.\............/../................. +./.........................................\....../................../.--.....-..../.....|./.-......|.......\. +.\..................../.-........|.........\............\...........\...............|-../................\.... +........................|......./.-....-....\.|...................-......-..........|........\.........../...| +.............-......./.../......................\.......\............/......................................|. +............-..........................-..................-.......\--......-.....-.......|..\..-....|........\ +...............|.......\......|....................\.....................-.../.|......|................../.... +---..\-.../.........//....\../....|........\....|-.........-.....|..........-|..............|...../..........| +......-.............................-.........................-.........../...../.|.../................-.....| +.........-.........\..............|....\..............-......\......../......\.......-\........-.............\ +.................../......................|......|.....\..........................-..-......./....-.....-..... +...\.....................-..-....\.......././....\......./...........................\..............\\........ +.................|................./.....................\...../.\.................\.........|...|....|....... +./............-........................\..|...-............................./............./..\................ +-............-..............|.................-..............................-..............................\. +................................/.....\........|....-.....||............/.|.............-..|....|....-........ +/.........|............-./...|././..............\./-............/......../\.\..././../..\..\..............-... +..../.....................\.........|......-...........|...\/..........//\.......//....-...|/.....\..\........ +../............................/...././...-....-............./.|..\..............|...../.........-.....\....|. +.................................\..../...-.....-.....-....|..\.\...../....../.............../.\.............. +..................|..|.......-......\.../....../....................................................|.......-. +-./.....|...\.....\../.......\..........................\.....|.............|...................|.\.../.../\.. +..................-.....\.............|...|.........-..-............................../............/..|....... +.....................\..../.....|......................................\.\............|/....................\. +.....-..\.........-....\..............-..........................\.....\....................\.........\.....-. +\...\|\...../.\............................\........-.........................../.......-............\........ +.............................................-......\.............|..../.......|......../..................... +/.........-............./......|................-........-.............|...-..../.....\.\....\................ diff --git a/2023/_input/day_17.txt b/2023/_input/day_17.txt new file mode 100644 index 0000000..4b1857b --- /dev/null +++ b/2023/_input/day_17.txt @@ -0,0 +1,141 @@ +121325426323542412134412222563763214173242535453232325612225164551127635723772145575536566417713247311545541175727733552452212441523653523523 +231216223351264655141552632132146473161357374264732366771212156625436662643364737431521763213145311617777525575176251125412656265156636352432 +255435624536215242455255274127151752475473257313426654415761317568425352264846453367673257227477673421453656366237631536651114522326245456615 +344331433555112552532552441246721161524725237132172162473256673465755557232328644654572412153231541264466241774431162777355546362533344542421 +525434363526162414614511663416111745537123243145613227283763543465788327456326856852866874124527274332336777363327232541433222231612255241612 +352235344252142631232127357265376676254615135133242727833447765382324487438778656255478645828762521474722353742357252641751351141543313223632 +235365554564642142213252263132372377425544636553542833456273556476758848377428287838746647527425711117252167121757242425125161251113264443626 +165425632552555165372613266166327523222655423886342562537544327574724656766642523836564685768736434166164652735551562516455571412531311465335 +121531436312116267461622426412334716376556665774834833357383344676667323322748475835558366425878324331212135566154435674513154235616216163653 +454344321515415445647672543161512554212387736754464372857823786875252667875673864352686688388833573228427444421467132524723143512135562244526 +613226242114623136313663545543152317753778652442275543868435823455584488773643782734268233428646834523476537544571432233243333612245253454624 +161334323365467755255722513257555111247447826333235664636475334363246553548854742324663775673776676673782743363512746613324113561464351562433 +551242656566236736277377461266667667558658874288565746376546236587353778774373782475282584848426676678373323242726212443546316455635653155436 +336214616613325457172215621734164865282833245743578454544644268255423686363442453522542852382684442285543288741155321351577752531474223533221 +144344123531637514434312127552563257522557774874344644854364727668743855485536325723282665758742642538662557482455224675736631163331511422142 +336351626524131641554261754317638358738826684428323377423622538523375362228223672787457562836347625764576734457587474766475747516372652566231 +612513241543725162327454351625436332668668856233758464376282784356685584657874346444277467466588865736667748646588425753462255337344555365446 +366424126763222316745161123522677374645733584275462735334644344554593365885387847566528547447664424874685455268367223311761364165627461121446 +356311142447474655364457372563887674634575568383426367898359693768789377693745759643487776846625334828753572877373875176522444431252331224422 +425424324567624576122615622276325327742576743837356844644479575844967796477573537793985633434477625458353733673643674141773331632656722223463 +621254765663163614457635662333844655438234278424844747388633859993586587574799568538737743853325275665367223662268284723456517574235121566532 +346136661256751245124217883654467857786866448456756588949449553584865546834849685777597945843934338844275462462687574643747327175345551677341 +512161274455154234633663764872574643827782625594539793643858755895385735748634556745699898587755353587587723883526358273613757213626117456351 +242731413511512266452636286277758466337866238495734956789456574346779889855734834547488794979387533645746648268686345257861622423451374215452 +335166447433422657346432388562528287826366355894963778777799438768474485597366944738549768335885458468334823545752547338662336527435117713141 +467626137762614433253484867872626742833688586595749979597599774499774673884389699467965985859435965673475766884854322677558417322416245624424 +362537221231463666185555537234234367424653394783455736956669948353874555695643679646653874769856983843747377878554684536665271422645536163465 +133355763452411133324864436452373446723747645337555838367656555849444569338376987644974885896658553955365284856875454443347341765127212314235 +273733633455731656747452578662772427878353837835754448534794744496455567744793635667536654485665395867777686268265783288365376655434725534212 +644432565162632358572576325448387286448655489458448646878559887394965346863775833574867349638847993747537897627374726526787353826366471147427 +556563226255361765247323432455827446998387988646647354863939867997796476864447747863757865435947479368486357455638582345324573276657463726452 +422174721337717272857442783737733588559683868677964486366348486954878587859574487799647793838594987685576489934866876788274372777733371375462 +752161217431428388568723358666735554549383436444899376959455964864579887656579945799978683739849675335789896499465323833665742253126552775633 +334777552645554748868428457476664434634675764864865543685458978898864876558474664694897655745493969333484579837446532837445274685762554716161 +724453764525682552223737538638788799838463689663938997999599644955584644944666486769977558437979677676968864676332477642454568332343114571744 +213256326653433462676273747733678457989684878683883759988464894648789767979545777999697899945745688984653454544596464233258876486522145636625 +622547345371288747242226232299598884878789874988576976866899799557986984864498485565867466768683657969756443363979523462863762572845234676635 +234361754218524365866776553359555657395745646588654869677866459754799689555984978488549799664865378557996867934367767582226253674525436273146 +725461275282432446636623863496659574533869994344994554678994979849444579956788647885986946777759437979877497458947546734253247487568744323637 +451674534427263687826283534685655553389457477945896845845485748797985869844794875558847745889596443669754948599988389626634674458567321776321 +527443232588288574842563884737658733938759658845688945499677996664469957899468888789596675897687894799433478834755945748625523764426571277355 +413327625783838684385434664645396393846938778555698554697976684485889764479788894599998486675548676967374995747584798774345774636638842337547 +471133737455724564378552487657498857869649566999646599658645479889944766658974484766974987844749775663784496675488669996856248664457636666541 +275416538678372775874562883669684354544779585784868856545894745445774767866686495755498456586574457998373563947896936962264246255743634117613 +726721558785255224428485856338985895895894978595599844876665957585687689976996678666477984489748777677537496673536495688572254767267565753354 +165454645836736554446379748437859635558475849666585546645876767665578986998755788646694984986889757879745845969867369593646727663427388575222 +545564574242538573572376863754559656356465466486479647875567798978667779999669867579857885489774759685868473443845595986484243686386845232123 +437727747777447645454546944866854985544859849597457489765756759588569976695686687788957988898546467564687698949544396437553666527732437472742 +367115673785725744822778539437867558977668665656487666657779676976575876868686998776688564755844988755885877848444837435345735334744868863713 +154231384378845435436333346879665634955475645964765798775679956855965897685888755559795895595848747558677976637945799636698472268863723876726 +732116326453732742743679844346868563797849585888688889695769657577898667766668595889687788855795968778794787856844789376734268586767366425347 +537466534756452332889944985594363567579464986854786669675996956995965899986655798776657877789875695549446985973333996746879848863454378735736 +232437823888337527699479375673933555644596944964976878896799977789579799695989869676589996796869744446547678676463794365385975287866545836574 +627367827638632257833487968756599579495479858799946669799879959696778576997576959575999998569965575954984785939447896769653826228432882822237 +223537546632535267374938566547335549454879975758988678798977879576776859986956766658595698986958958578848466766564589996785372572347788857526 +767462554365445862453579685585478846487546855996999778779959876575896779899689975656676589597897476658777687687399568898949973225838357525515 +427158354326458335459776869668775468546798566969688958759875797968887699877587768877566566558867988697474796948855943549359532535762286826444 +727473624563678642598359846353469567445754654956968558787858589668598687966787868765869896595777745489945767987559549666694333748526728572737 +675332588577675777498537776665984784754974678447769996788966969556976987988898659998977968776599574846499549569674367939497675674842682562526 +616633734462324766989559479568877855949994744999568655697789999797799697968867759598679966989799946987949497488863549778993553857468428786465 +225863848834254684763437333455364984789896494488685778557586996769779996899968987666856968655795984845945877744837377765878864334237263333723 +656466528235852463579894579393696645964769474989668989579977858686887779986767768976559996685679595565698476975476954977873333826573723863487 +255377484435828279796885878835958665669855456699695565896599897687668998789778966997599877675689664586785676558889696674646653286472743646875 +745447273475736483988685464946775766855555866589775586785879687886688876968769788879675679785895895748849486899985939983646375375862755662541 +762463265652786795394676999987956644659558986696669597859659787796698667679989796665975869779889769976974586697493437763853976627878473653573 +256524446848833848698473648697699998944687948877697765798699666897987786789876896977575795657859568594484658654548968947846598568788363663682 +124273355248257646643368469834444579858649647975886779985787988897787796668886788696668976986676778659554758488757543877995469576243468567668 +774248454835252458348467636368986954844977968757856577779687799686877786969767996988655766589869556776945784574649978593834693325552643458878 +232674784886437298846345348649877498895646569958997577557978788889798796797988688799985987877996885589594688587558473446776677535484267273538 +622855828833226287376494589438459699676465566569776865679688686769887887766699878996755665857567595866478994858944846344685899674832387238486 +475882247637357668753498444586849898549959695575999995685689987787697898877966668797667566556975896997947448558847969979384533976846745844343 +628553637525437239793463598636574895979459876697767996855886967896969789699877679666658586967969896946958999455763855736695738783434346388384 +518554888456433663836877639893476956648785697979589986675796699666798876967667776699976758589676988654445467847997658795639478328724567572487 +535422734272548767894674876955676979978477978687867698557799989968786976978899987897766985876986768667478558648497767698385476654324656636552 +355485777372224736599899667535884798846797698779685695697596866887677767896778869777969776559978796478946456899577573553735744453352385835487 +538538734362626739638488766944698944565886859869597755598676996896686868896998879867689857975587957586969554754956698894797754553367526467337 +478562664223688544996659356367449569755777768898876577758766669786796797687986799997879899797999576767464565984484889833347359765524734584657 +318566285878825468736366765944668498486878476995886676566957989896776999688897987996655556868669786954555999765597989948899875384867383462764 +556873627333226234473338883746554566969666956566785576677566776678867996989967789765955586659869794879466859854756599948587739857475427775475 +316528428832386727498374889836398866547949844669678999557967797767769767886697869985976687598995568488456957946484798454465934786677665445645 +711827865826258229863653693974765548565997545599897898567776699688698778668896876858798586689988877549975444555969443577373969472462426845757 +255846247547426838467986347564894658594544785766987569876759988898878688776666967768777955887876755954569689449759468453648573374385234882371 +545327574627834757335364964497588997844584478879769775695878589989989768989966866597788876767759964466696697794754497896668476473764828776235 +623542268675677528986783476548564985758754975876968787758559856966968769776767698558659957857797887886578848666545849385549633346427676782852 +523272367852473835358866377589458545685684767446977955655597859886587999798778858698599666986557877556985899597978638396767487262255282388574 +526464537226232253776799357347638799555545556498579666888669677677695667988886698999757896875978958494665989786554456677447786438745867346675 +577147534524455465447887948487393449775478485964759679655555889878877785965797688969658775597979469957795684846655587459935354488683868574475 +476573744388447423584864793793738687979474964546458656856879977957556596965858776655689965565748458956447677994987584759763968528588724355852 +765627353433228375456947843836564677968978758967949997668657898675679896979698566675889695985847675775885449683696794687577937842737586643352 +477134587642685728265784483844776466795497794547868798688895955977598795769868757799777956565588895786697794859357379544975528765367763856877 +266742482326685677599467374596888546575645989698484699778886886676958799595588877799889858769697674975978644639787996485495458256842325574757 +511267643566767533888646333695644346658549984489574685876757869677598886768978755777579757556565598854947664464687733388759522627253848472425 +132453735523256254676859739435649744646577849745978576765755576898585578599889897976587769674698699767559987453938553435576682258522368863515 +261271326334444562374387646686638477479675989655869968765886857887965969957587656785975744778879468965897886648985574487796442545668557435536 +333311652555825272556657854883565378575577657974447779559966885998686989769998795598665749487475768967567457967743633499368744726368236564332 +556152854664362567274585587564687735875744594447495957669459795589859798976687768967775954876475944764975646959949897977782647535248678877511 +264133385533255388732773947884977359799668959987896575645985977758886987796989957997695676698755444975487666754345698738652872868786345766727 +463113176447683582335265393398466858559586884499479697945477646669998577779575676785499475877984488786483549478756845366576537332825275321127 +234754217423267847437428693754995579687888987986466865874744755897875878857888866699946656657556949796739636534655639763833526784427583553515 +337121135364426334726223568894688765456965954877664774697659467465988684846796557679575457484794849866738548668674443592734238636282848564115 +525432728768642268423837647476659966537864884845577948656546694548897564578574576456847644479875989499696347558694977835763227444757773677217 +156224463358485728473363843754663638933574949566789679565746758849676455698844667988697995997665785499735885987657974628433833555435685515136 +626564231826425747284656538384673854766757349555974958576685795986849894964885544468857766986988954378558377779889746387372527537437461725142 +445163665587553553444628539497589763898673745545857459746478755669495459878987475776945787945847867374858357636869769677723374876456457165757 +153366452647645476878324567869439896344676947664859995465865987465754895649486979755879996566986669779646658347698956867866267276436816151113 +127352244373287438458433247869795949787875964597957497677699867658694688977484588679699786847448937389536364384838565247866454845226161175723 +721741643716473372688765645349654653433346574449588877957544676696994485668588556677898759864946868874958453937933688673454722748466623411652 +675736624326228287826836766533748773384344658798746846455458798564674548656569788488799848555985667549483833349574762738373276633836476134627 +554355724334358242262268673832537853795949493753735499554557564598876545697885759964464675653735897674734494347967552322786248748773433173756 +524245531542635544452688778273864537884657748433949889444574468445787474979867568494798686673539667457488746444566645782734865724373616263236 +777267215621225823587456728228359948654376758834949464465549786465778584948998557789887889986394343869834563568453768426825343888227144173166 +265564113372672575653724842356682744669898357534933347666789565784587947576466449944678587339599744743557488372843638343572776823277543723375 +212352523617334254267644573867753683633696466336799678446899434386687976777687834333934593465633459583756789768242338755872352375532647466227 +111627741725656332366674333258827826855435645558795857487796886854336863347974873745348869899349886695545664884662678638564436537433222736161 +751471263751634114635565276285257754964789786366464984543765398497679333354587347363945366373587745497886436426273645853646845641277744323514 +574717513615323754464466666322864236459478738648458834487669937333854886745538895843545845666934588876848228688353378737476634263752771276145 +174244655323632474785437732386584262658779585758993364633848866539693757468968548673465698748365568894458263656753622636377414142673221243322 +166156571447265174328544282873634644377894647986437555376785653448937566995375636838633878868784898647883365447845536654375453222174632441251 +654164557172147564374256368627264444728622377779976798455698345746878373973896765973759947985693879832342646232772324282424464437275452463655 +565652532553113233523827884848633483625844846937786747673867368467993338459946345977589487577684334668275362857356337875843212172615654352251 +136444124551637421417468456666378884854788583383837673774543339546456453754847436335893836959945773738527375687646736886267674326212777763716 +444353742346377224341232334425262657468736873538567459567845689556548746446388464869648779758459726854267866576453566472167257475341222456531 +462614525614355533772434583462633832257557638644285865794369797694698863536458549967639547734687288467428853288846886287715632366341631561115 +455441432435714326616747438357253222332582425867288445889467835944779599586367765576693398943366488578555332622463247655161333226323675352455 +333444526427627456346265253275687327432534244657234864853399846595886679774465998576653787363644627268888657745482657213341134333232217251546 +415442524346772367715767346362633778553623736262777663675623548378554545379769474853854558442457463745628676765348376112111266562354717415164 +365316216737244653574726463346527547664757422635463777366444786753568754993555528747645573364237467476834244465353114662241533135343526443354 +642156535332266156154527631472724633643463332275322654263687536764555433884484872223523578455236337253773846583442363553451141565376121563123 +244523631421322355153425713263448623674673364463283834252622474824474765435427683635476382363664338348634362582717422471426736454651564455316 +253625236524547371773674334443474228222284888542835387542755752672824826663388384838663866487244658742645257677716551235417613351512356344533 +611332423251345151727574654411316523644243288763383785232527743372275338786488442433353623285538557376682745715444327162752542662532463466641 +424561223232512512225435257561476517647846267447682737858538454624762665424754623672526763552335854437625663167326414777711372475411244253315 +113445234225455575716433756264621114768575746383344332688867545365688287364473386668462857253452527847752367227434333453645536274433363351456 +311645443322532425632437732576611256323424536473675555622587885685256723826767245854644433734667687468571222263523247771752351754265251214136 +512416342312651622176655526243467562223245588372876637243434578222436572547672245574763847367673234581331713611173336321113414556131451125355 +544126134335454312772124477776571372151312722382728682266462285748233358658752327846786837524283276245374515153651776564354246643163351254245 +161465163312132356325543532457453137741137674643588543372324648768736672372454445822678234873823421761535355522321756266276365333544564112263 +535322143226134621342247743331746616277725262674766583564888573648676748678685644867364857557762545355635147457167542233551416562236121661612 +166513621125514212452452465653337671155715633155415735438632523225822753456628472866466783365443766373747533377762526471263564366145253153246 +241256124152326322554142667257454522265554757273453374213777577356787834227842242227264715774737665132267716542367135321542134465324433441643 +525456252341264533166516163744757274726223464616557543136577647326736286542837871744411672175662567555261523634677477436662463555523615556434 diff --git a/2023/_input/day_18.txt b/2023/_input/day_18.txt new file mode 100644 index 0000000..505fe6d --- /dev/null +++ b/2023/_input/day_18.txt @@ -0,0 +1,604 @@ +R 2 (#3e6b80) +U 6 (#2b1de3) +R 4 (#1465b0) +U 2 (#549d23) +R 6 (#aa9992) +U 6 (#27e7f3) +R 7 (#aa9990) +U 6 (#5a3933) +R 5 (#1465b2) +U 5 (#23ade3) +R 4 (#49b5b2) +U 6 (#39ad53) +R 7 (#54c4f2) +U 5 (#491513) +R 9 (#4f5960) +U 5 (#357be3) +R 3 (#4f2140) +U 6 (#258b43) +R 4 (#4f9570) +U 3 (#1ea371) +R 8 (#7be6c0) +U 5 (#67bd61) +R 5 (#a31240) +U 6 (#6bf7d1) +R 5 (#a31242) +U 4 (#3464a1) +R 3 (#7be6c2) +U 4 (#33f091) +R 5 (#5c0530) +U 6 (#4c4e11) +R 2 (#611e90) +U 3 (#128231) +R 6 (#5ecef2) +D 9 (#6eb251) +R 5 (#5e54d2) +U 9 (#1e8081) +R 3 (#73a8b0) +U 10 (#6dc731) +R 3 (#84d470) +U 2 (#6b91a1) +R 7 (#64edf0) +U 5 (#4da881) +R 10 (#710072) +D 5 (#4aa4f1) +R 7 (#4dd192) +D 6 (#4aa4f3) +R 3 (#2af062) +D 6 (#6fabe1) +R 5 (#177cc0) +U 5 (#26ba61) +R 5 (#5a3aa0) +U 9 (#3b5401) +R 5 (#012590) +U 2 (#747f11) +R 4 (#753b32) +U 7 (#965a31) +R 4 (#753b30) +U 3 (#20c281) +R 5 (#225830) +U 4 (#7a4da1) +R 4 (#716560) +U 6 (#036ca1) +R 5 (#55fd00) +D 4 (#064ad1) +R 4 (#93a480) +D 6 (#411d21) +R 3 (#990d00) +D 6 (#4af4a1) +R 3 (#0f8880) +D 4 (#0f56c3) +R 3 (#7f2590) +U 7 (#0f56c1) +R 7 (#374e40) +U 6 (#4af4a3) +R 2 (#161a20) +U 3 (#5277d1) +R 5 (#7c6760) +U 4 (#528313) +R 4 (#525840) +U 4 (#267643) +L 10 (#525842) +U 5 (#501273) +L 4 (#447950) +D 10 (#69cdc3) +L 3 (#530a00) +U 10 (#590643) +L 5 (#243450) +D 5 (#74a853) +L 6 (#7c2a42) +U 5 (#1d9673) +L 3 (#3f8d62) +U 8 (#606b43) +L 5 (#576480) +D 8 (#63d243) +L 5 (#86ad60) +U 4 (#63d241) +L 7 (#0be9f0) +U 8 (#4b0801) +L 2 (#64f9c0) +U 4 (#478081) +R 9 (#20b940) +U 4 (#a60cd1) +L 9 (#02c6a0) +U 5 (#0d8be1) +L 4 (#8226e0) +D 6 (#013a81) +L 3 (#5cf860) +D 4 (#985951) +L 5 (#162d72) +D 2 (#1c2c31) +L 2 (#654f82) +D 4 (#51b4e1) +R 10 (#401a32) +D 5 (#32c291) +L 7 (#84ff82) +D 2 (#25cf41) +L 3 (#43b090) +D 4 (#6208d1) +L 3 (#a428a0) +U 9 (#6208d3) +L 3 (#07d9c0) +U 9 (#6e8a01) +L 2 (#3ab640) +U 3 (#187711) +L 4 (#162d70) +U 6 (#8e5a81) +L 6 (#049580) +D 6 (#a81333) +L 2 (#342030) +D 3 (#233073) +L 7 (#510730) +D 4 (#15cbf3) +R 3 (#507520) +D 5 (#3be881) +R 6 (#52f2a0) +D 3 (#a52711) +L 3 (#0d7680) +D 5 (#1db6c3) +L 5 (#5f0450) +U 5 (#6c6d73) +L 2 (#47abc0) +D 5 (#707733) +L 5 (#771be2) +D 2 (#151c53) +L 3 (#413da2) +D 3 (#768703) +R 11 (#640b02) +D 2 (#37b343) +R 4 (#4ac8d0) +D 5 (#016421) +L 2 (#907990) +D 5 (#016423) +L 3 (#412220) +U 5 (#0f5603) +L 9 (#5e11d0) +D 5 (#24abb1) +L 7 (#1ab552) +U 2 (#06e641) +L 2 (#9e07e2) +U 4 (#06e643) +L 6 (#51f692) +U 4 (#763581) +L 8 (#3716a0) +U 4 (#1360d1) +R 5 (#567bc0) +U 2 (#222831) +R 9 (#7d2160) +U 6 (#72b991) +L 6 (#4a6840) +U 3 (#3ef773) +L 4 (#626a10) +U 4 (#4c3d93) +L 4 (#6fa5e2) +D 4 (#6e0b33) +L 4 (#6fa5e0) +U 3 (#38aaf3) +L 5 (#223552) +U 5 (#025c33) +L 4 (#4205c2) +D 4 (#49ddd3) +L 3 (#3aa782) +D 4 (#028fd3) +L 5 (#76e842) +D 3 (#028fd1) +L 3 (#9bc962) +U 4 (#6bde73) +L 9 (#9d6be0) +U 6 (#2db831) +L 5 (#1192c0) +U 3 (#6b5c33) +L 4 (#152940) +U 4 (#746923) +L 5 (#8648a0) +U 3 (#4cb8d1) +L 3 (#877170) +U 5 (#24ca21) +L 4 (#877172) +D 3 (#6e4261) +L 2 (#691310) +D 6 (#655001) +R 6 (#7e7740) +D 3 (#1562b1) +L 6 (#261a00) +D 4 (#700e91) +L 4 (#6ade10) +U 9 (#4a1251) +L 3 (#5a7c00) +U 7 (#5a30e1) +L 6 (#15a832) +U 3 (#152e01) +L 3 (#643622) +U 5 (#977db1) +L 7 (#4b7bc2) +U 2 (#546691) +L 7 (#8cd5a2) +U 7 (#5b7a31) +R 3 (#6c85f2) +U 6 (#6996a1) +R 8 (#458692) +U 3 (#370e51) +R 6 (#7bc6d2) +U 4 (#07aa01) +R 4 (#389dc2) +U 6 (#3de6d3) +R 6 (#54ece2) +U 5 (#625703) +R 10 (#0e9512) +D 5 (#1e8793) +R 3 (#873d92) +U 4 (#2eb4b3) +R 5 (#2d3432) +U 5 (#26b2f1) +R 2 (#2c8c52) +U 3 (#2ff4c1) +R 7 (#0e68f2) +U 3 (#32b371) +R 8 (#0e68f0) +U 4 (#5d6fb1) +R 3 (#128622) +U 5 (#06af41) +R 6 (#a95192) +U 4 (#274af1) +R 3 (#3af302) +U 6 (#50fff3) +R 6 (#3f9cf2) +U 2 (#50fff1) +R 3 (#4734a2) +U 3 (#1a5051) +L 12 (#986ce0) +U 3 (#224b61) +R 9 (#2d66c0) +U 4 (#6f2a31) +R 6 (#0aba80) +U 7 (#0ecb81) +R 4 (#606870) +U 3 (#0ecb83) +L 3 (#4e78e0) +U 3 (#4563f1) +L 11 (#8bed00) +U 3 (#3298c1) +L 5 (#5a39d0) +U 2 (#51d641) +L 8 (#8e6ee0) +U 4 (#233851) +R 4 (#31c7a0) +U 9 (#728831) +R 3 (#670cd0) +U 4 (#1f3621) +L 7 (#8df230) +U 4 (#44a361) +R 7 (#2aed30) +U 7 (#2a0161) +R 4 (#1db2c0) +U 3 (#6387c1) +R 3 (#1886b0) +D 3 (#128c21) +R 3 (#acb330) +D 3 (#3a9d01) +L 4 (#3658a0) +D 6 (#00ec51) +R 4 (#682712) +D 6 (#2440e1) +R 5 (#45f812) +D 9 (#6298d1) +R 3 (#778f22) +U 4 (#6298d3) +R 2 (#271462) +U 10 (#0d5ff1) +L 4 (#6a69e2) +U 5 (#0d5ff3) +R 6 (#24b5e2) +U 3 (#2440e3) +R 5 (#5f3192) +U 4 (#41c313) +R 3 (#236852) +U 7 (#6e15c1) +R 8 (#5187b2) +D 5 (#6e15c3) +R 2 (#65a3d2) +D 4 (#41c311) +R 11 (#3dfa02) +D 4 (#26ca51) +R 5 (#4e3912) +D 6 (#797803) +R 5 (#2f8ee2) +U 5 (#2a9b83) +R 8 (#3d6702) +D 5 (#4646e3) +R 3 (#3d6700) +D 2 (#43a1c3) +R 4 (#592f22) +D 3 (#9d61c1) +R 4 (#1f90f2) +D 5 (#172261) +R 7 (#5a7ba2) +D 8 (#797801) +R 6 (#4e4ad2) +D 8 (#28fda1) +R 5 (#55a862) +D 4 (#28fda3) +R 5 (#1665a2) +D 6 (#3fca41) +R 9 (#850700) +D 3 (#43f8f1) +R 3 (#3cbd90) +D 6 (#620311) +R 8 (#70b2b2) +D 6 (#25cb11) +R 3 (#336c52) +D 4 (#8da331) +R 4 (#336c50) +D 5 (#0594c1) +R 3 (#4a2b92) +U 8 (#31cac1) +R 5 (#392742) +D 8 (#233743) +R 6 (#798b32) +D 4 (#233741) +R 6 (#4fcde2) +D 4 (#1ffd91) +L 9 (#207ed2) +U 5 (#9314d1) +L 9 (#056d22) +D 5 (#56c131) +L 9 (#431340) +D 6 (#94bbb1) +R 8 (#357120) +D 2 (#19ca71) +R 8 (#8bebb0) +D 6 (#4257c1) +R 8 (#0c4fc0) +D 3 (#380131) +R 3 (#07a260) +D 3 (#02a841) +L 11 (#100a10) +D 2 (#07ad11) +L 4 (#4a2b90) +D 3 (#10d091) +R 6 (#609d22) +D 2 (#69a281) +R 9 (#320ed2) +D 5 (#0782c1) +R 2 (#67c382) +D 2 (#19a311) +R 7 (#14e152) +D 3 (#4ee351) +R 5 (#14e150) +D 8 (#54dae1) +R 3 (#428ba2) +D 5 (#0a5431) +R 3 (#1880e2) +D 2 (#2fc091) +R 9 (#440bc0) +D 6 (#758b11) +R 6 (#6a54b0) +D 3 (#31f8d1) +L 6 (#37e190) +D 5 (#0c4af1) +L 4 (#6acc62) +D 2 (#161df1) +L 4 (#72f272) +D 4 (#161df3) +L 7 (#088332) +D 4 (#182831) +L 8 (#82d720) +D 3 (#371df1) +L 7 (#7207b0) +D 6 (#206d61) +R 4 (#0c1082) +D 2 (#796721) +R 6 (#220252) +D 7 (#2948a1) +R 7 (#5f2c02) +U 7 (#137d21) +R 3 (#0fe252) +D 2 (#0164d1) +R 6 (#1ce912) +D 6 (#4e0983) +R 2 (#7d7c72) +D 11 (#598c93) +R 4 (#581202) +D 8 (#0ffba3) +L 4 (#500e32) +D 2 (#42bcf3) +R 4 (#31e852) +D 8 (#2d8913) +R 4 (#1d67d2) +D 5 (#5a03c3) +R 9 (#45c0b0) +D 4 (#3a1e53) +L 9 (#687430) +D 4 (#3a1e51) +L 4 (#25b1b0) +D 8 (#613e03) +L 7 (#4ea210) +D 8 (#366193) +L 3 (#4cb7c2) +D 8 (#452333) +L 6 (#675322) +D 6 (#6ae223) +L 3 (#0d88b2) +D 2 (#23a4a3) +L 8 (#60f512) +D 5 (#568a53) +L 3 (#0cbd02) +D 3 (#4bad03) +L 4 (#588672) +D 4 (#72dfa3) +L 2 (#960472) +D 9 (#394403) +L 5 (#28bcc2) +D 6 (#4eb073) +L 6 (#04e992) +D 3 (#22c803) +L 3 (#a76142) +D 5 (#22c801) +R 10 (#171512) +D 3 (#25f2f3) +R 6 (#581600) +D 7 (#3d0f33) +L 8 (#142a40) +D 4 (#6eb893) +L 5 (#142a42) +U 4 (#02a243) +L 9 (#522a40) +U 2 (#4d2a01) +L 4 (#081760) +D 7 (#17c601) +R 4 (#081762) +D 6 (#497a01) +R 5 (#2fbb50) +D 3 (#4be663) +R 4 (#3b3140) +D 2 (#48f803) +R 3 (#69ec82) +U 3 (#80c993) +R 5 (#3f05f2) +U 8 (#5d5463) +R 4 (#50d1c2) +D 3 (#472973) +R 3 (#1b68a2) +D 5 (#5ebab3) +R 7 (#464fd2) +D 3 (#64c0a1) +L 7 (#4062d2) +D 6 (#8e33b3) +L 5 (#1c3382) +D 6 (#8e33b1) +L 4 (#50b882) +D 4 (#64c0a3) +L 2 (#2bcfb2) +D 7 (#84fc61) +L 3 (#413452) +U 10 (#84fc63) +L 3 (#47ad42) +U 2 (#03ba03) +L 3 (#7197b2) +U 5 (#81aa33) +L 8 (#5c0552) +D 5 (#235433) +L 5 (#4236f2) +D 5 (#4e9bc3) +L 5 (#3740a0) +D 2 (#1e7f23) +L 10 (#3740a2) +U 3 (#5f66a3) +R 4 (#4236f0) +U 7 (#164f83) +R 4 (#5d1a30) +U 3 (#1192e1) +R 4 (#4c67a0) +U 5 (#954a91) +L 8 (#3348c0) +U 3 (#306c01) +L 4 (#694200) +U 8 (#52c163) +L 3 (#6abee0) +U 3 (#26c123) +L 4 (#6abee2) +U 4 (#4c3413) +L 9 (#4e8800) +U 5 (#1192e3) +L 3 (#2bb700) +U 4 (#21ceb1) +L 12 (#4ec360) +U 3 (#21ceb3) +L 4 (#32f940) +U 8 (#5d5f73) +L 4 (#1dcf10) +U 9 (#3cf413) +L 3 (#7cc870) +U 8 (#5f0953) +L 4 (#376c70) +U 6 (#01d623) +L 5 (#697e50) +U 5 (#99e693) +L 5 (#6f63b0) +U 3 (#576c53) +R 10 (#7fa030) +U 3 (#1fd933) +L 5 (#4eb2d2) +U 6 (#39a1f3) +L 4 (#3f0452) +D 4 (#42ffd3) +L 3 (#5b9d52) +U 7 (#25c2d3) +L 8 (#5ba250) +D 7 (#40d763) +L 5 (#5ba252) +D 3 (#5f2a73) +L 7 (#477ce2) +D 3 (#2652d1) +L 5 (#453770) +D 5 (#758781) +L 11 (#453772) +D 3 (#937381) +L 2 (#119e62) +D 5 (#131891) +R 5 (#3285e2) +U 3 (#211fd3) +R 11 (#8349d2) +U 4 (#211fd1) +R 4 (#3246c2) +U 3 (#2515f3) +R 9 (#5a5bd0) +D 7 (#6fbf83) +R 4 (#6a5680) +D 3 (#6fbf81) +R 9 (#329240) +D 7 (#750063) +R 5 (#5e71f2) +D 9 (#3358d3) +L 6 (#1d2652) +D 4 (#6a8ee3) +L 3 (#4e9cd2) +U 6 (#3e8623) +L 2 (#3607d2) +U 5 (#379d43) +L 6 (#3cf342) +U 3 (#853b63) +L 3 (#737102) +D 3 (#1de1b3) +L 2 (#66ff82) +D 10 (#634163) +L 3 (#2eff02) +U 6 (#2ac343) +L 2 (#528a42) +U 7 (#4d81d3) +L 3 (#2ea1e2) +D 5 (#19e063) +L 6 (#8b5a82) +D 7 (#4b8e33) +L 4 (#5e41d0) +D 2 (#159903) +L 5 (#31f3c0) +D 9 (#537013) +L 2 (#31f3c2) +D 7 (#4b7b43) +L 4 (#5bd890) +D 10 (#1be163) +L 5 (#0c3340) +D 3 (#540d83) +L 9 (#2449f0) +U 6 (#9411c1) +L 7 (#766db0) +U 7 (#9411c3) +L 4 (#37ee30) +D 3 (#516ad3) +L 3 (#0991b0) +D 2 (#98a733) +L 5 (#0ea042) +D 3 (#513f83) +L 2 (#a0c682) +D 8 (#616323) +L 4 (#a0c680) +D 3 (#4555b3) +L 3 (#79e032) +U 9 (#673de3) +L 4 (#5904b0) +U 7 (#495bd3) +L 3 (#5904b2) +U 2 (#49a633) +L 5 (#76a9c2) +U 10 (#10de23) diff --git a/2023/_input/day_19.txt b/2023/_input/day_19.txt new file mode 100644 index 0000000..934f577 --- /dev/null +++ b/2023/_input/day_19.txt @@ -0,0 +1,732 @@ +hfm{a<1891:R,m<2881:A,m<2987:A,R} +ns{s>2289:R,x<3094:A,R} +vll{s<2397:R,x>1015:A,A} +fx{a>3383:R,a>3059:A,A} +bhg{x>669:A,x<605:R,a>3407:R,A} +fr{m>2523:A,m>2353:R,x>2678:dts,A} +llj{m<2149:vzl,pjq} +qh{s<2205:R,R} +nml{a>1072:R,x>1129:R,A} +tb{m<2429:A,m<2506:A,x>2910:R,R} +cr{x<735:R,a<2972:R,x<973:R,R} +rb{s>2603:A,x>240:R,s>2405:A,A} +xr{x>975:A,R} +pb{a>2460:A,s>686:A,cq} +dfv{x>1219:A,km} +kc{m>1600:nsj,tjp} +lx{s>3383:kgn,qrh} +dc{s<723:A,x>2900:R,x>2607:A,A} +gxn{s<3351:R,s<3754:A,A} +kkk{a>1099:R,R} +jbz{x>3246:R,m<3301:lh,zz} +qf{s<3162:R,m>2686:R,R} +gqb{s>2575:A,m>2634:R,R} +pz{a>2415:sv,x<1649:A,a<1508:bv,R} +fn{m<2045:ht,a<1532:sm,x>1630:bxs,gfk} +br{m>631:A,m>392:A,R} +dtx{a<3420:A,x<582:A,R} +ms{m<1784:R,a<1945:R,x<276:R,A} +ljm{a<3677:R,m<2840:R,a>3790:R,A} +gcp{x<964:zqt,a>3632:qr,cvc} +kz{m>2543:A,m<2302:R,ns} +gqp{a>1014:A,R} +hq{a>416:kz,m>2537:mm,pt} +bcb{m<2838:A,x>355:R,R} +cp{s>2863:A,R} +gfr{s>2813:vxb,R} +kx{s>3076:A,s>2788:bcb,rb} +lrf{m>3285:jg,a<1934:A,R} +sjf{x>2162:dc,s>886:ddk,s>327:qjs,zqv} +cqp{a<3274:R,a<3562:pjn,A} +zkb{x>927:vpm,x>553:pbm,pvv} +cl{s<2019:A,a<672:mx,hh} +vxm{s>3645:A,x<3010:R,R} +tl{m>2863:hfq,s<618:xmd,zf} +lc{m<1255:qjt,m<1360:mml,m<1405:rrz,R} +mk{m<2694:A,m<2720:A,m<2742:R,R} +vhd{a<1005:R,a<1032:fl,m>3001:hp,vc} +bhl{a<63:A,A} +dnp{m>2478:R,js} +vx{x>459:A,s>3010:R,A} +mgm{a>2427:A,m<512:A,m<672:R,A} +mkg{m<3037:kqc,pg} +pgn{x<657:dbf,bp} +gk{a<2387:A,m>3634:tjf,xrs} +bk{x<1464:R,m<2385:R,s<2889:A,R} +brh{x<592:A,a>1420:A,a>1294:A,A} +jlk{x>3037:A,R} +sj{x>1055:R,A} +hpg{a>2950:R,s<183:R,R} +rvj{s>535:fv,x<2858:kjp,m<1563:hv,ff} +nxz{m>2313:R,s<3765:A,a>2157:A,A} +gml{x>3077:hk,fr} +mnn{a>363:R,A} +rh{a>120:A,a<63:R,a<86:A,A} +kqs{m<1616:xpt,zzs} +pp{s>2657:nk,m<2894:hhh,clh} +tnr{m>2934:A,x>1403:A,x<1189:R,A} +kk{x>2090:zkj,m<2508:A,m>2704:A,qln} +zl{a>239:xgn,x<2628:nn,a>99:A,bhl} +lm{a<2364:R,a>3061:A,a<2725:A,A} +mml{s<927:A,A} +pn{a<66:R,s>3144:R,x>3414:A,R} +grp{a>988:gfr,knm} +rbq{a<1659:R,m>2412:R,a>1755:R,R} +bs{x<455:R,m<2320:R,a<1359:A,R} +kh{m<354:A,pcg} +xc{a<915:A,x>481:A,m>1053:R,R} +zm{x<921:A,x<994:A,a<1883:R,A} +xmd{a<1534:vg,m>2299:rpl,xs} +dpj{a>155:A,s<3370:lf,s<3618:nxx,R} +jzt{x<2429:R,R} +bgg{a<224:A,m<2159:R,A} +gcg{x<467:A,drb} +smm{s<3438:rdk,m<1941:A,a<2090:A,shf} +fds{m<817:A,A} +dts{m<2173:A,x<2824:R,A} +nch{a<862:R,A} +pkx{x>1081:A,R} +kl{a>3653:A,A} +zmn{a<3055:A,A} +vpm{s>2871:gb,a>302:A,x<1117:qh,A} +zjh{s<681:R,s>1108:A,a>2949:R,A} +csf{x<2624:A,R} +fqm{a<2452:A,R} +fp{m<2297:R,x<1623:A,m<2552:tb,lgz} +qjs{x>1439:A,m>195:R,A} +tcp{a>3014:dbd,a<2122:xr,s>395:R,qpp} +qlq{m<2703:A,s<1679:R,a<3363:R,A} +qp{s>3440:bmb,s>3155:jxr,m>2536:trb,gtv} +pgt{x>2227:R,x<1942:R,m<2848:A,R} +ks{a>2805:A,a>2754:A,A} +gzs{a<1925:mg,A} +nn{m<3249:R,x<2147:R,m>3368:A,R} +hv{a<2412:fkv,hpg} +sf{s<3613:A,s<3794:R,a>2553:A,R} +dx{a>2210:kvd,lz} +rt{x<702:sq,a<2430:dp,jd} +tdx{a>951:R,R} +rdk{m>1912:R,s<3160:A,s<3318:A,R} +xd{a>1917:A,a<1756:cgg,s<1553:R,R} +xgn{x<2590:A,A} +mm{m>2703:R,gqb} +kg{x>575:A,s<2499:A,s>2683:R,R} +ml{a>1963:R,R} +nt{x<1093:bfn,dr} +kxz{s<2359:qxx,bkc} +qqz{m<1860:A,a<3554:A,s<937:R,R} +zc{s>2080:R,m<2808:qlq,s<1761:bl,lb} +tvf{s>2113:A,a<3780:R,R} +dhh{a<2922:A,a>3078:A,A} +gtv{a>2013:A,m>2316:R,s<3022:R,mc} +xh{x>2824:R,A} +mq{s>2361:thg,sgb} +lf{s>3091:R,A} +lz{a>1814:spd,x<958:jj,kkj} +th{s<215:A,x<3295:R,m>3355:A,A} +xtp{s<2152:A,R} +gqm{m<1316:R,R} +dr{x>2043:A,m>2796:A,s>782:A,R} +dbf{x<616:A,s<2980:R,A} +hhh{x>2202:jzt,R} +sq{a>2651:qcp,s>2270:kx,a<2082:bqv,sh} +sh{x<322:lnq,txg} +tc{x>1958:hr,rkl} +hkm{m<2693:A,m>2768:kv,R} +vjh{m>3433:nqx,a>372:qxl,s>2941:dpj,zl} +nb{m>1186:A,m<1106:R,R} +ttg{a<1907:R,R} +rzt{x>1028:R,x<934:A,s<1494:R,A} +gcj{m>493:A,A} +mj{m>759:xc,a<926:A,A} +rp{x>1430:llz,a>3405:R,s>253:cr,xzt} +ngj{a<1849:jkc,vcl} +ddk{x>1064:A,a>860:A,s>1170:A,R} +fs{m<3638:zv,m>3842:R,s>1558:fh,xg} +rpl{s>314:szc,a<2372:pkk,s<158:gsj,rp} +jpb{s<2898:zh,pdq} +ngr{a>1086:A,m<1535:A,R} +lsm{m>2766:R,A} +vt{a>2734:R,sf} +kfg{m<3340:jnx,s>2974:jhg,jpx} +hbg{a>39:pn,x>3436:rzv,A} +pjq{a<3306:R,a<3496:R,A} +fv{a<2261:ltf,qck} +hh{x>2281:R,s<2324:R,A} +pv{m<3610:kfg,dnd} +kfm{x<1892:R,A} +gck{x<1059:zm,s<1802:tnr,R} +knz{s>1104:xlt,x>2522:hkm,m<2690:dnp,nt} +zb{a<1282:A,gxn} +qn{a<2568:R,a>3362:A,A} +fhz{m<2469:R,x<1017:A,R} +hl{s<2004:A,m<2517:A,s<2219:gn,R} +hr{x<2819:A,x<3556:R,R} +hs{m>1138:A,m>1099:R,x<1102:A,R} +gm{s>1235:A,x>871:A,R} +sm{x<1462:xmf,m>2947:xjm,sr} +sgn{a>785:A,hgs} +ll{s>2311:A,x<941:A,s>1709:A,A} +gr{m<3579:R,m<3743:R,bcr} +hgz{m>1825:R,A} +vcl{x>1884:A,R} +bp{s<2265:R,a<2991:R,m<931:R,R} +vtg{a>589:A,s>611:A,x<1171:R,A} +drb{x>499:R,x>483:A,R} +kkj{s>2996:prz,s<2115:A,s<2591:rbq,R} +mf{m>1621:xdf,m>1509:R,zpx} +qx{m>2493:A,s<67:R,s>99:R,A} +xj{x>1073:sd,a<2088:ssz,a<2874:mv,fx} +nl{x>1901:vt,dhh} +qxx{s>1740:gk,a<2502:xd,fs} +lh{x>2845:R,x<2721:R,s<1013:R,R} +gn{a<2827:A,x<888:R,R} +ssr{x<1329:hcd,a<3869:bk,s>2378:R,fcm} +djv{a<669:R,s>2282:A,A} +vg{m>2419:xbq,xxp} +hxz{s>1149:R,s<970:R,R} +pcg{m<563:A,R} +pfz{s>3593:A,s>3372:R,a<1883:A,R} +spt{s>1816:ffb,R} +js{a>3135:R,a>2472:A,R} +qck{m<1565:R,R} +spd{m<2263:R,x>787:A,fbv} +cnh{m<106:vrl,R} +gmg{m<76:A,R} +ltf{a<1339:R,A} +ssz{x<912:R,s>2404:R,A} +hx{a>2776:A,s>3120:R,a>2575:R,A} +ps{m<2121:R,m>2614:lsm,R} +vzl{s>2769:R,A} +qbq{x<1041:R,A} +zn{x>2869:xtp,s>2386:qv,x>2164:vm,gq} +xpt{a<1592:hkg,jrs} +ckf{x<2913:A,s<3461:A,qd} +vmr{s<538:R,A} +xjl{s<1931:R,R} +sd{s<2558:R,m>674:R,R} +gzx{s>3734:R,a>2118:A,x<2007:R,R} +vxb{a>1179:A,x>2948:R,R} +grj{a<986:A,x<3665:A,R} +hz{m<2410:R,a<1473:R,m<2553:A,R} +xfz{m<664:R,A} +qjt{a>2336:A,R} +skl{m<1447:tbm,x<2563:kc,x<3380:rvj,xmk} +rpt{s>3373:kk,a>3465:pmz,qs} +tbm{x>1640:gl,x>940:lc,x>555:dh,ppp} +rkl{s>758:A,s>703:A,A} +kt{a<1525:sjf,m<165:cnh,a<3002:kmt,glm} +rxb{a>1274:A,s>217:R,x<2590:R,R} +bmb{a<1887:qmq,m>2527:gzx,nxz} +lj{m>1658:A,x<1304:R,a<2946:R,R} +dz{m>958:skl,kqg} +cgg{m>3549:A,a<1669:R,a>1715:A,A} +bv{a<517:R,A} +pzp{m>1796:A,s>337:R,A} +kjp{x>2667:R,a>2007:jq,x<2619:tf,R} +mmn{a<962:bfg,s<3092:rd,a<1071:vhd,kkk} +qpj{m<474:jx,vrb} +nbd{s<2643:fdz,x<2979:qc,a>109:dg,hbg} +gv{m<1621:A,a<2391:R,s<526:R,A} +bqv{x<397:A,s>1928:R,s>1735:hfm,vb} +bxn{s>3496:A,R} +rd{m<2982:R,a>1048:R,x>688:rs,A} +xs{x>1594:hnv,m>2097:tcp,spr} +hd{x<2832:R,a<1703:A,A} +sgb{x<2756:R,m<3350:R,a>989:A,R} +ct{s>268:A,m<1145:R,R} +gfn{x>2445:R,m>3468:A,R} +jrs{m>1415:R,s<2989:R,csf} +mx{a<418:A,a<544:A,R} +sz{x<3171:R,A} +xp{x>96:kp,br} +bz{m<2623:zn,x>2581:npm,s<2334:qz,pp} +hsm{a<809:A,m>2928:R,s>2549:R,R} +vm{x<2604:R,s>1820:A,R} +jnx{a<2355:R,ll} +ffb{a<3297:R,x>1272:R,m>2403:A,A} +dkm{x>1784:A,a<3116:R,A} +pjn{s>2661:A,A} +vrb{x>458:rjt,a<2892:bj,xcb} +ktc{s<1670:R,zs} +cq{m<1671:A,a<1916:A,A} +tt{s<2036:A,A} +hnv{s<227:A,R} +djh{m>3475:R,R} +bx{x>3185:R,m<3404:A,gfn} +bh{m>3890:R,a>2742:R,s<2390:R,R} +jk{s<2685:nv,a>577:mj,m>532:vjr,gcg} +zdz{m<2908:R,s<3336:A,R} +bl{a<3471:R,m>2937:A,a<3715:R,A} +gxl{s>3244:jcc,m<2779:rfj,npx} +gq{a<2394:A,s<2052:R,x<1953:dkm,R} +cqv{m<3827:jm,hlq} +vrl{x<2650:R,x<3541:A,A} +glm{x>1916:A,a>3599:nhd,ggg} +zlm{x>195:A,R} +md{x>1309:zdz,ttg} +vpp{x<3122:R,R} +kv{m>2823:R,x<3299:A,R} +fcm{s<1752:R,m<2347:A,A} +hmr{x<549:bh,a>2572:R,R} +nm{x>2081:R,ljm} +shf{x>2947:A,s>3634:A,x>1974:A,A} +pt{x>2491:R,x<2085:A,s<3066:mnn,A} +xdf{a<861:A,R} +dbx{x<1876:A,a<1669:R,R} +dp{s>2341:md,s>2015:gzs,s<1618:pqp,gck} +kgn{x<1215:R,A} +lgz{a>1196:A,R} +in{s>1392:fn,vv} +qln{s>3608:R,m>2588:R,a<3582:A,A} +dvf{x>592:A,m<2183:R,x>320:A,A} +dh{a>1930:A,x>739:A,a<1115:rbz,R} +kvg{x<2234:R,A} +qtn{a>1139:A,s<1193:A,A} +pc{a>1879:cm,nch} +fcr{m>2273:rdr,zqz} +qcd{a<2274:A,s>2074:R,R} +bcr{x<3112:A,s>600:R,A} +nv{a<903:cx,s<2221:qnm,a>1077:fds,A} +lkf{x<1086:A,R} +qnm{m<806:R,s<1909:R,m<985:R,R} +gb{a<426:A,x<1187:R,s>3618:R,R} +sxt{s>2383:zt,m>218:nf,x<678:gmg,zmn} +tsc{a<2880:bxn,s>3543:bhg,A} +npx{x<551:R,m<3518:mjv,rkd} +fbv{x>325:R,m>2480:R,x>134:A,A} +zz{a>2965:A,x>2929:R,x<2695:A,A} +np{a>3482:A,x<3481:A,A} +sbs{s<259:A,x<1379:A,R} +bn{m>3500:R,s<1981:A,R} +rxv{x>2424:gml,a>3161:rpt,a<2452:qp,nl} +rrz{m>1386:A,A} +bpn{s<3253:A,m<2833:A,A} +hvk{s>893:qtn,s>718:fp,ps} +xzt{s<214:A,a<2852:A,a<3195:A,A} +gt{m<2278:dvf,x<488:zlm,s>2549:A,tvf} +nk{m>2791:kxp,bbf} +sx{x>429:A,A} +hvr{m>1538:vmr,x>3824:zjh,R} +vd{m<1786:A,A} +hgs{m<3070:R,R} +vlk{a<1234:cl,bmn} +lnq{a<2399:A,A} +xbq{s>361:zmh,x>1853:A,A} +jcc{m<2771:bm,s<3604:ssm,a<1271:A,R} +jpx{m>3485:A,x>558:phc,m>3423:tt,A} +hfq{x<2572:zbr,xt} +bkc{m>3587:xrm,bx} +sn{m>847:cqp,mvz} +nq{x<785:ms,vd} +lt{a>3074:R,hx} +gl{s<547:nb,m>1232:gqm,lm} +vk{s>2248:R,x>1018:R,x>875:A,R} +nh{s<2219:A,R} +rkd{a>1307:R,m>3778:R,s>3005:R,A} +pl{m>532:nx,ckf} +cvc{m<2242:llj,s>2486:lx,spt} +xlt{x<1412:gm,R} +tlh{s<680:R,m>1528:R,R} +xcb{m>816:R,m<635:R,R} +rf{a<3404:R,a<3430:A,s>3097:A,A} +npm{a>2858:zc,m<2822:gvj,vpp} +vb{x>516:R,a<1732:R,a<1881:A,A} +rbz{m>1164:R,m>1031:R,R} +dpg{m<2841:R,A} +djj{x<2363:A,x<2667:A,R} +jg{m>3682:R,x<1403:R,s<1039:A,R} +jkc{a<1057:kvg,x<1649:brh,R} +bm{x>529:A,s>3739:R,A} +mvz{a>2875:A,x>2783:R,a<2598:mgm,vp} +szc{s<471:zx,R} +jb{x<659:R,x>709:R,x>676:dt,R} +mb{a>173:R,a<102:R,R} +qcp{m>2929:gkj,m>2762:dpg,x>412:mk,R} +pld{m<1537:A,s<834:gv,m>1601:hxz,R} +pzt{m>2415:pkc,m<2185:A,x<753:bs,A} +jq{a<3196:A,s<241:A,A} +hcd{s<2451:R,x>1173:A,A} +nj{x<2302:R,x<2582:R,a<2520:A,R} +fpt{a<3130:R,A} +cbt{s>2382:R,s>2035:A,x<3432:A,A} +tjp{a>2112:tlh,m>1498:ngr,a>994:R,vtg} +xjm{a<583:vjh,m<3559:fhm,cqv} +pg{s<2659:R,m<3065:R,s<3521:A,A} +rs{m<3568:R,s<2122:R,R} +tdg{a>716:R,s>1859:R,m<2373:R,R} +vjr{s<3323:A,m<887:R,s>3746:R,R} +qz{a<3160:pgt,nm} +tk{x>369:R,x<184:A,x<290:A,R} +qmq{m<2599:R,x<2042:R,a<1683:A,A} +tv{x<344:A,x<362:R,A} +pbm{x>798:R,s<2731:xq,A} +jj{m>2323:tk,s>2354:vx,x<498:R,R} +qgp{s>1012:A,R} +ph{x<1029:R,R} +hp{s>3534:R,R} +xrm{s<3121:cp,x<2635:R,s>3518:R,R} +xmf{a<675:zkb,a<1132:mmn,s<2787:gj,gxl} +jtd{a<2647:nml,lkf} +dnd{m<3828:dcc,hmr} +zj{a<1710:jb,m>522:pgn,s>3129:tsc,sxt} +cz{s>3009:jc,zzv} +hck{s<2868:jzg,m<2279:px,x<1200:gp,A} +fdl{m<1066:qbq,hs} +qs{a<3302:R,x>1926:R,x>1732:rf,cxv} +ggg{s<517:A,R} +qr{a>3785:ssr,a<3690:dfv,hck} +tjf{m>3817:A,R} +xmk{a<1412:mf,x<3641:pld,m<1591:hvr,pb} +kp{s>2187:R,x>165:A,A} +fg{x<399:csz,x>551:zj,a<1392:jk,qpj} +thg{m<3389:R,a>1107:R,R} +zqz{x>596:A,x>213:R,R} +qc{x<2322:A,mb} +vv{m<1712:dz,tl} +pbv{m<2080:mhd,s<878:tc,plt} +px{a<3748:A,A} +jzg{a>3732:R,A} +tlp{x<3026:R,a>2164:R,m>353:A,R} +xzl{s>159:R,x<3229:R,x>3323:R,R} +zmh{s>488:A,x<1954:R,A} +tf{s>209:R,s<81:R,R} +vq{m<1053:R,a<2219:vll,A} +glz{m<2247:A,x>725:R,m<2273:R,R} +zkj{m<2706:R,s<3737:A,s>3825:R,A} +nf{m<397:R,s>1752:R,s>1617:A,A} +gfk{m>3145:pv,m>2600:rt,a>2976:gcp,dx} +jhg{s>3608:djh,R} +hlq{x>2998:grj,R} +dv{s<2926:R,s<3607:A,x>402:dq,fpt} +fh{m>3713:A,m<3664:A,s<1671:A,R} +zzb{a<161:A,A} +pkc{x>535:R,s<2008:A,a<1368:R,A} +dg{m>2360:A,bgg} +cx{s>2101:A,x>475:A,s<1778:R,R} +zss{a>2883:R,s<2474:R,A} +nx{s>3208:vxm,s>3008:tdx,R} +gh{s>107:A,m<2657:R,A} +qrh{x>1346:A,m<2388:R,m<2525:R,A} +zv{x>3110:R,R} +jm{a>1039:A,s<2431:R,A} +kj{m>2931:nh,vk} +jd{s>2473:lt,s<2087:ktc,kj} +mhd{a<3200:R,x<2076:R,qqz} +zzv{m>1041:A,A} +krh{s>1661:xjl,m<446:R,rzt} +tsj{x<132:R,m>834:nc,zss} +jzz{x>368:R,A} +xt{a<1846:gr,s<470:th,jbz} +kxs{m>3533:R,a>1643:A,R} +pvv{s>3049:A,a>280:R,m<2872:A,bn} +zt{m>312:A,R} +prz{a>1630:R,A} +dcc{s<2488:qn,A} +ppp{s>555:qgp,ct} +sgl{x<1049:kxs,m>3295:dbx,ml} +xrs{a<3128:R,R} +qd{s<3697:A,s>3883:A,m<256:A,R} +mg{a>1779:A,A} +kvd{s>2370:mkz,a<2669:lvz,m<2375:ks,hl} +gp{s>3412:A,m>2453:R,s<3190:A,A} +gs{m<3214:hnp,a>1327:R,m<3478:R,R} +dq{m<2294:A,a<3133:R,s>3809:R,R} +fhm{m>3214:mq,a<1065:sgn,m<3095:mkg,nzh} +kqg{m<471:kt,ngj} +gvj{x>3475:dkt,m<2753:A,kq} +bbm{a<2651:R,x<1934:R,a<2930:A,A} +sr{a>523:grp,a<289:nbd,hq} +zx{x>1522:R,s<413:R,x>551:R,R} +rx{a>2719:R,a<2394:A,x>892:R,A} +nsj{a<2290:gqp,lj} +ht{m>1276:kqs,x>1383:vr,x<809:fg,jpb} +rfj{a>1363:hz,x<924:jzz,x<1249:rvd,gjv} +rdr{a>3396:R,x<490:A,s>1707:A,A} +llz{m<2526:A,a>2958:A,A} +vp{s<2776:R,m>438:A,R} +bxs{m>3075:kxz,s>2929:rxv,bz} +zh{s<2067:krh,m>838:vq,m>452:xj,qg} +mv{s<2553:R,a>2583:A,R} +lq{s<3384:A,s<3723:A,a<502:R,A} +hk{a<2548:pfz,s>3580:lms,qf} +fl{x>561:A,a<1018:R,A} +qxl{a>469:R,xh} +bfn{x<471:R,a>2998:R,s>903:A,A} +htd{m<2745:A,A} +lms{s<3778:R,A} +mjv{x<1153:A,A} +nqx{x>2835:cbt,a<271:zzb,a<391:djj,R} +dt{s<2326:A,x<694:R,R} +spr{m>1944:A,a>3045:pzp,x>1013:sbs,hgz} +jx{s>2889:R,m<279:qcd,x>487:A,sx} +trb{a<1977:R,a>2166:A,A} +zs{a>3142:A,x<1091:R,R} +vr{a>2273:sn,m>843:cz,s>2681:pl,vlk} +gsj{x<2446:qx,s>79:gh,a<3044:A,np} +sc{m>2483:A,R} +nc{a<2727:A,s<2752:R,m<1032:A,A} +pmz{x>2124:A,a>3726:kfm,A} +rzv{m>2612:A,a>17:A,A} +pkk{m<2591:sc,R} +qv{m>2307:R,nj} +mkz{m>2298:rx,m<2213:ph,a<2681:R,glz} +txg{s>1691:R,A} +kxp{x<2013:A,R} +jc{m<1072:A,a<1090:lq,s<3550:hd,R} +zpx{a>639:R,a>349:R,x<3587:R,A} +cm{m>1760:R,R} +zqv{x<1298:A,a<689:A,a<1166:R,R} +bj{x>424:R,s<2808:A,a<2043:A,A} +kmt{x>2294:tlp,s>566:R,x>1268:A,A} +km{s<2922:A,a>3666:R,a>3644:R,A} +hnp{x>507:R,x>187:A,R} +ctf{m<1863:A,x<1658:A,A} +lb{m>2935:A,s>1913:R,s>1845:R,R} +zqt{a>3510:gt,a<3321:dv,s>2328:dtx,fcr} +zbr{s<567:sgl,lrf} +fdz{x<2671:rh,a>121:R,A} +nhd{a<3761:A,s>849:R,a<3857:R,A} +qpp{a>2654:A,m<2211:R,A} +bmn{x<3088:R,a<1847:A,gcj} +fkv{m>1512:A,x<3170:R,x>3258:A,A} +sv{x>2547:R,R} +dkt{x>3767:R,s<2076:R,s<2423:A,A} +dbd{x<944:R,x<1326:A,A} +xg{a<3113:A,m>3707:A,s<1469:A,R} +phc{s<1991:R,x>1172:R,x<840:A,R} +phf{s>1933:kg,s<1674:R,x>508:A,R} +pqp{m>2786:A,s>1514:R,R} +gj{m<2941:pzt,m>3643:phf,gs} +rvd{a<1252:R,s>3015:R,R} +knm{s<2302:tdg,m<2584:jlk,htd} +clh{x>2113:R,a>2983:A,fqm} +ssm{s>3366:A,A} +zzs{s<2716:pz,x<1486:nq,m<1843:pc,smm} +nxx{a<86:R,m<3157:R,s>3477:R,A} +csz{x>235:df,a>2090:tsj,s<2596:xp,zb} +lvz{x<566:R,m<2338:hf,fhz} +kqc{m>3000:A,a<1259:R,x>2607:A,A} +pdq{s>3502:jtd,m>734:fdl,kh} +nzh{s<2592:R,s>3085:R,R} +kq{x<3010:R,a>2121:A,s<2261:A,A} +jxr{m<2447:A,a<1841:A,a<2096:A,bpn} +plt{a>3255:kl,bbm} +hkg{m>1491:R,djv} +xq{a<399:A,x<652:R,R} +rjt{a<3053:A,a>3622:R,R} +cxv{x>1677:A,R} +hf{s<1982:R,x<1260:R,x>1414:R,A} +mc{a<1706:R,x<2072:A,A} +bbf{m<2692:R,a<2801:R,R} +bfg{x<492:A,hsm} +vc{a>1052:R,s<3558:R,A} +ff{x<3072:R,s<333:xzl,x<3262:sz,R} +gjv{m<2383:A,A} +df{a<2151:xfz,tv} +qg{m>298:sj,pkx} +xxp{m<2001:ctf,x<1555:R,a<853:A,rxb} +gkj{a<3512:R,R} +zf{a<2136:hvk,m<2363:pbv,knz} + +{x=270,m=803,a=872,s=703} +{x=168,m=751,a=718,s=82} +{x=153,m=830,a=1600,s=1613} +{x=335,m=2651,a=45,s=535} +{x=1744,m=2707,a=2054,s=421} +{x=792,m=2226,a=694,s=2812} +{x=2839,m=2056,a=3184,s=1188} +{x=136,m=2452,a=76,s=610} +{x=917,m=1348,a=184,s=1413} +{x=1109,m=1790,a=648,s=1026} +{x=1397,m=450,a=1618,s=714} +{x=486,m=1721,a=1685,s=718} +{x=2719,m=106,a=910,s=447} +{x=623,m=1151,a=772,s=1053} +{x=977,m=493,a=1463,s=2396} +{x=499,m=270,a=3225,s=760} +{x=70,m=2583,a=2786,s=300} +{x=39,m=2807,a=3758,s=133} +{x=1875,m=2332,a=869,s=2285} +{x=2498,m=1034,a=2958,s=2313} +{x=412,m=596,a=1271,s=295} +{x=59,m=2215,a=3630,s=331} +{x=1357,m=240,a=630,s=15} +{x=48,m=1507,a=269,s=1936} +{x=394,m=844,a=923,s=660} +{x=227,m=436,a=2767,s=792} +{x=27,m=773,a=586,s=987} +{x=574,m=40,a=166,s=99} +{x=1818,m=379,a=1740,s=908} +{x=507,m=419,a=300,s=1289} +{x=241,m=1679,a=226,s=235} +{x=98,m=2248,a=1826,s=1645} +{x=1608,m=752,a=1752,s=1596} +{x=491,m=1129,a=780,s=2579} +{x=41,m=2383,a=1346,s=336} +{x=2266,m=755,a=248,s=29} +{x=610,m=378,a=533,s=1732} +{x=1681,m=935,a=2270,s=2267} +{x=2150,m=1331,a=1113,s=3004} +{x=689,m=261,a=1010,s=1711} +{x=991,m=225,a=1468,s=2326} +{x=18,m=1705,a=1963,s=664} +{x=28,m=546,a=2929,s=92} +{x=3391,m=440,a=1644,s=2483} +{x=859,m=1340,a=508,s=25} +{x=865,m=654,a=578,s=3020} +{x=1297,m=144,a=172,s=611} +{x=691,m=1975,a=1682,s=368} +{x=5,m=3220,a=1769,s=356} +{x=1974,m=1287,a=1944,s=215} +{x=345,m=421,a=2361,s=2440} +{x=1009,m=351,a=431,s=410} +{x=749,m=836,a=40,s=79} +{x=2735,m=2444,a=3141,s=813} +{x=74,m=12,a=2040,s=3428} +{x=20,m=188,a=14,s=1207} +{x=1123,m=108,a=591,s=35} +{x=184,m=410,a=22,s=251} +{x=146,m=1425,a=833,s=1064} +{x=2551,m=1056,a=1433,s=1569} +{x=1883,m=1442,a=108,s=646} +{x=804,m=14,a=1000,s=1944} +{x=160,m=104,a=1040,s=2738} +{x=1185,m=651,a=2981,s=1563} +{x=43,m=1746,a=512,s=1247} +{x=386,m=1151,a=1189,s=1107} +{x=2118,m=2914,a=226,s=75} +{x=3542,m=3035,a=1877,s=584} +{x=120,m=1243,a=575,s=8} +{x=3828,m=1207,a=124,s=7} +{x=142,m=1824,a=2620,s=574} +{x=622,m=713,a=354,s=1178} +{x=107,m=671,a=142,s=446} +{x=230,m=581,a=1034,s=1436} +{x=622,m=521,a=440,s=2084} +{x=671,m=717,a=224,s=535} +{x=64,m=818,a=1947,s=214} +{x=74,m=1639,a=441,s=1224} +{x=625,m=1559,a=3240,s=134} +{x=1738,m=2097,a=197,s=511} +{x=884,m=2434,a=178,s=1287} +{x=1524,m=773,a=201,s=1309} +{x=99,m=24,a=3313,s=812} +{x=216,m=97,a=2561,s=182} +{x=2981,m=399,a=383,s=252} +{x=61,m=439,a=671,s=1747} +{x=309,m=3,a=8,s=2011} +{x=74,m=958,a=87,s=896} +{x=100,m=661,a=1197,s=174} +{x=391,m=284,a=2173,s=348} +{x=1477,m=1641,a=150,s=1475} +{x=1376,m=801,a=10,s=221} +{x=706,m=1658,a=415,s=2618} +{x=137,m=13,a=1319,s=264} +{x=754,m=940,a=245,s=362} +{x=1977,m=987,a=206,s=1058} +{x=1652,m=194,a=1058,s=1236} +{x=66,m=297,a=2194,s=339} +{x=1440,m=1819,a=200,s=923} +{x=221,m=35,a=2729,s=1582} +{x=145,m=503,a=160,s=2628} +{x=643,m=772,a=1129,s=634} +{x=1580,m=5,a=847,s=503} +{x=2069,m=370,a=447,s=465} +{x=2794,m=92,a=1234,s=1493} +{x=2752,m=215,a=305,s=1296} +{x=1769,m=449,a=1991,s=210} +{x=1513,m=405,a=1029,s=1594} +{x=1260,m=1937,a=327,s=959} +{x=165,m=557,a=1077,s=3128} +{x=1263,m=180,a=19,s=72} +{x=369,m=173,a=530,s=1370} +{x=331,m=639,a=567,s=263} +{x=1046,m=2303,a=32,s=461} +{x=106,m=160,a=18,s=1293} +{x=1202,m=48,a=644,s=155} +{x=1411,m=1973,a=68,s=1002} +{x=3082,m=1684,a=1314,s=2303} +{x=781,m=414,a=885,s=341} +{x=294,m=2955,a=2670,s=268} +{x=913,m=49,a=378,s=1057} +{x=67,m=1402,a=910,s=310} +{x=304,m=2341,a=214,s=1026} +{x=668,m=478,a=1233,s=363} +{x=2275,m=3714,a=12,s=57} +{x=2603,m=591,a=1357,s=1809} +{x=7,m=511,a=3472,s=1883} +{x=1305,m=2652,a=1194,s=227} +{x=308,m=2241,a=416,s=2248} +{x=83,m=3545,a=3477,s=372} +{x=2771,m=1273,a=1640,s=816} +{x=3080,m=174,a=542,s=724} +{x=209,m=70,a=534,s=210} +{x=452,m=114,a=679,s=1008} +{x=771,m=294,a=338,s=1258} +{x=1730,m=826,a=345,s=27} +{x=2901,m=1038,a=1499,s=2199} +{x=2066,m=3193,a=957,s=393} +{x=130,m=3257,a=2250,s=253} +{x=235,m=987,a=278,s=597} +{x=2465,m=1268,a=1893,s=2360} +{x=940,m=470,a=435,s=1386} +{x=958,m=392,a=79,s=18} +{x=1513,m=2440,a=1287,s=36} +{x=84,m=361,a=3217,s=28} +{x=2451,m=2374,a=57,s=1242} +{x=251,m=1008,a=1114,s=1458} +{x=2058,m=46,a=657,s=989} +{x=2398,m=463,a=1753,s=917} +{x=1181,m=2013,a=4,s=2832} +{x=1548,m=271,a=6,s=218} +{x=1934,m=240,a=410,s=954} +{x=2328,m=1860,a=1111,s=1487} +{x=2370,m=27,a=694,s=1372} +{x=2299,m=350,a=669,s=360} +{x=2010,m=2306,a=700,s=1297} +{x=349,m=2569,a=223,s=352} +{x=50,m=343,a=49,s=17} +{x=1980,m=82,a=20,s=1637} +{x=1336,m=1955,a=269,s=264} +{x=154,m=3620,a=2,s=818} +{x=623,m=3021,a=2297,s=1911} +{x=2981,m=2825,a=1290,s=69} +{x=493,m=534,a=1029,s=3961} +{x=44,m=1352,a=1311,s=1147} +{x=920,m=389,a=2045,s=1441} +{x=1166,m=930,a=1522,s=291} +{x=51,m=673,a=2995,s=496} +{x=950,m=557,a=24,s=1444} +{x=1261,m=2375,a=234,s=1565} +{x=303,m=464,a=645,s=923} +{x=2077,m=287,a=740,s=1523} +{x=1813,m=370,a=1529,s=111} +{x=861,m=2269,a=1182,s=2074} +{x=111,m=1145,a=543,s=326} +{x=504,m=468,a=2391,s=990} +{x=1701,m=1719,a=2574,s=331} +{x=1123,m=70,a=754,s=2870} +{x=6,m=1068,a=1404,s=2472} +{x=991,m=1306,a=767,s=2885} +{x=50,m=980,a=947,s=856} +{x=1450,m=580,a=869,s=229} +{x=684,m=486,a=1191,s=2639} +{x=100,m=1569,a=66,s=644} +{x=1756,m=138,a=1347,s=3488} +{x=1403,m=562,a=726,s=619} +{x=601,m=2128,a=43,s=953} +{x=40,m=160,a=73,s=161} +{x=556,m=2694,a=792,s=22} +{x=505,m=1755,a=2185,s=391} +{x=2545,m=3215,a=850,s=430} +{x=1256,m=153,a=112,s=1132} +{x=2016,m=2104,a=408,s=2138} +{x=238,m=1081,a=645,s=882} +{x=1735,m=620,a=52,s=34} +{x=39,m=125,a=655,s=269} +{x=233,m=1962,a=601,s=248} +{x=284,m=2418,a=468,s=17} +{x=864,m=2542,a=1040,s=399} +{x=229,m=152,a=753,s=285} + diff --git a/2023/_input/day_20.txt b/2023/_input/day_20.txt new file mode 100644 index 0000000..854c849 --- /dev/null +++ b/2023/_input/day_20.txt @@ -0,0 +1,59 @@ +%hm -> lg +%ph -> gr, cd +%xs -> st, zf +%xc -> vv, bn +%fx -> lx, st +%dn -> zc +%nd -> lg, tc +%pd -> dn, lg +%pc -> gr +%lx -> gp +%tc -> kj +%tl -> nn +%kk -> xs +%gq -> pd +%xq -> st, xj +%nn -> bn, xc +&st -> kk, fx, hz, lx, zb +&hb -> rx +%xj -> st, vq +%sz -> gr, ph +%bz -> kx +%vq -> st +%vv -> hh, bn +%gp -> st, hz +&js -> hb +%lf -> bn, qg +broadcaster -> nd, fx, mc, lf +%cd -> vr +%vr -> qc, gr +%kx -> kc, lg +%jr -> bn, tl +&gr -> cz, dh, mc, qc, js, nj, cd +%qg -> hq +%mc -> gr, cz +%nl -> st, ch +%hz -> nl +%kt -> gr, jc +%zc -> lg, qn +%vj -> rs +&zb -> hb +%kc -> gq +%qc -> kt +&bn -> qg, hq, rs, lf, bs, vj, tl +%cz -> dh +&bs -> hb +%jc -> gr, pc +%nj -> sz +%kj -> lg, bz +%hh -> jv, bn +%hq -> vj +%dh -> nj +%ch -> st, kk +%jv -> bn +%rs -> jr +%zf -> xq, st +%qn -> hm, lg +&lg -> gq, bz, tc, nd, rr, kc, dn +&rr -> hb + diff --git a/2023/_input/day_21.txt b/2023/_input/day_21.txt new file mode 100644 index 0000000..ea05ab5 --- /dev/null +++ b/2023/_input/day_21.txt @@ -0,0 +1,132 @@ +................................................................................................................................... +................#..#.....#...#........................#...............#................#..........#.......#.....#......#.....#..... +..#..........#...#......#..#.........##.....#....#.....................................#.......#.#........#...#...#.....#.......... +....#......##.......#..................#...#......#.............................#..#....#..........#............................... +..................................#...........#...##......................#.#.......##....................#.................#...... +..##.#..#.........#.............#.#.....#..................................#................#.......................#..#........#.. +...........#.#....#.....#...#..................................#............#......#..#.........#..#....#.......................#.. +........#..............#.....#......#...#...........................#...................#.#....#..#........#...#................... +...#......#.....##.............................#.#.......................................................#....#..#..#.............. +..#..#...#.....#..#....................#.#...#................#.......................#........#.......#..#........................ +...#.#.........#...............#.#.....#.........##..........###.....#.........#.........................#......#..#...#........... +.................#.......##...#........#..................#......................#........#..#.......#............#.#....#......... +.....##........#.............#...#.............................#........##......................#....#..................#.....#.... +...................#...#...#......#.#.#...................#.....#.........#..........................#..........#..#.#......#..#.#. +...#.##..#..............................#............................#.................#.......#...#.......#........#...........#.. +...#................#....#........................................#.....#............................#..#....#....#.........#...... +....#.#.....#............#....#...#.........................#.#...#....#.....#...................#.....##....#.......#...........#. +.#..................##..#.#...............#...............#.#..#...#..#...#.#...........#.#................................#...###. +...............#..........#.....#..#.....#.........##..........##.....#.......##..........#...#..............................#..... +.#..#..##.#.........................##.....................#.................##...............#.#......#.......#......#............ +.........##..#.#...............##....................#...#............#.....................##......##....#..........#........#.... +.............#...#....#.#..........#.....................#...##.....#.........#...........#.#.............#.#.............##....... +.#.#....#....................#..#.......................#....##.........#......#.........................................#......... +.........#......#..##..#..............................#.......#.....#..............#.................#......#..##...........#...... +.#...#..........#..........#....##..................................#.#.......#.................#.#.........#.........#......#..... +..........#....#.....#...................................#............#.....#.........#..................#......#..#....#.....#.... +.........#.....................##...........#.#.........#.#......................#.....#........#...#...........##................. +..#....#.........#.............#...........#............#.#....##..........#...#.#..........................#.#.................... +....#...........#......###....................#....#.....#..#.....#..#.....#......................##...#.....#..#.....#....#....... +...........#....#...#...#.........................#.......#..#...........#.....#..#.................#..........................#... +........#.......#.#.#..#...............#.#.............................#...#..............#...........##..............#.#.......... +..................................................#...........#.....#............#.....................#.....#....###..........#... +.#.#.......#.....#...................#...................#.#..................#....#..........................#.................... +..........#....#......#...................#...#............................................................#............#.#..#.#... +..................#..#.....#..........#.#.........................#.....................#.............................#...#........ +.........#................#............###.....................#.....#...........#...#....#...............#.........#...........#.. +.....#.#.............#..............#....##.....###..##........#..............#............#....................................... +..............#...#..#..........#....#........#........#.......#...............#........#...#.#...#.........#......#......#..#..... +........#........#...............#...#..#...#......##..........#..................#...............#.........#.....#.......#....##.. +.........#...##................#.........#...#...........#.....#...#......#....#.#............................#.................... +...................................#.............#.......................................#..........##.........#...#.##...#....#... +.............#.............................##.............#.................................##...#....#.................#.....#.#.. +.........#......#..............#......#........#..........#..##......#.................#.......................#.......#..#....#... +.....#.#......#...........#...........#....................#.#.....#................#.........#......#............................. +...............#........................................#....#.....#.....#.........#..........#...#....#........................... +.#.............................####.........##.#.#....#.#.......#...##....#............#.#...#.....................#..#............ +......#..........................#.....#............................#.#....##......#........#...........#.......................... +.......#.#..#.#.........#................#........#.....#.......#....#.......#.#......................###................#......... +.#........##..........#......#......#.......#...#...#.......#.....#................#.......#..#......#.......#.................#... +..............................................#...#.......................#.....#..............##..#..#.....#...................... +...................#......#....................#.........#....#....#..#.#.........##....#........#................................. +.....................#..#..........##..............#.....#.#........#................#......................................#...... +..#...............#...........#................#.......#...............#..#...#.....#.............#..##....#...............#..#.... +...#.#..#........#.#...........##.............#...#......##..#.....#......#.....#..#.......#.......#...#.##...##..........#........ +..#..................##....................#.......................................#.....#......#.....###.....#.............#...... +..#............#...........#.......#.#................##.....#.##...............#.#..#.................#..#........#............... +..............#..................#........#.........#.......#................#........#........#.....#.#...........#............... +..................#............#.....#...#.#...#...#......#.....#.....#....#..........#........................................#... +.#.........#........#........#.............#...#..#...#...................#......#.................#...#.#......................... +..............#..........##..#....#.....#.......#....#..#..............#..#..............#.................#....#.................. +..........#...#...##........#......#.......###...##..........#...........................#...............#.##.........#............ +................##..#.............#......#...##......#.....#..............................#.......##.........#..#....#...##........ +.................#.......#.......#..#...##...#.......#.....#............#.................##........#.......#.##..........#........ +........#....................##.......#.....#..............#.............#.......#...#...........###.............#..#......#....... +..............##............#.#..........##..............#.....#.....#..##.............##..............#.#......................... +.................................................................S................................................................. +..........#.........#.......##...#.#.......#.#.......#...#........##........##...............#..#..#.#..#............##.##......... +........#...............##.........#.........#.#........#.#.#............##....#.......#...#.##...#...#...#........#.....##........ +..........#.........................#...#....#.............##..........#..............#.##.........#............#.................. +...........#.#................##..........................#..#...............###..#.............#...#..#.........##................ +...................................##.............#....#..#.#......#...##.....#..........#.#..........#...........#..............#. +........................#......##.....................#..#...........#............#.........#...................#....#.#........... +...............#....................................#....................................#......#...............#......#........... +..#.............................###...........#........#..#....#....#..#....#..........#....#...#.................................. +.................#........................#.......#.#..#.....................#..........##..#....#.#........#.#.................... +.....................#...............................................#..#.........#..#.......#.................#................... +.......#........#..#.............#..#......###...#....#................#.....##....#.#..............#.............#.........#.#..#. +.#...#...........#.#..#....#.....#....##..............#...#...........#.....................#.....#..........#..................... +.........#............#.....#.........#.....#...#..#..#.....................#..#..............##..............#.................... +.#..#..#....................#..##...#.........#............................#........#.....#.............#.#.............#.#...#.... +..#.#.....##..........#.##............#......#..#..............#....#..............#......#..#..#.......#...............#.......... +.....................#..........#...##.............#.............................#.....#.....#............#.#..............#....... +..........##............#............#..#..#.........#.#............#..#.................#.......#.....#......................#.... +.....#..................#.....#........##.................#.....#....#...#................#....#......#.....#............#....#.... +.....#..#.....#..........#...#..#....#....#........#..#..#.....#....#..#..........#............#...##.#...#..............#.......#. +....#...#......#..........#.......#....#........#..#..#.......#.#.................##...#...#.#.#.........#......................#.. +..................................#.....#..##...#............#..#..#..........#....#...............#.....................#..#...#.. +..#.......#...#.................#...#..............##..................#............#......#........................#........#..... +..#.......#.................#.......#................#..#.#.#......#..................#........#...#........................#..##.. +...........#.............................#....###..................#......#.....#.........#...#................#.......#...#.#..... +....#...#.......#................##....#.#..#..#...#..................##....#.................#................##............##.... +....................#...............##............##..........#.......#........#........#.......................##..........#...... +...#.....#.......#.................#........#.....................#..##........#......................................#......#..#.. +.#.....................................##.................#.#.....#......##.#..##................................#...........#..... +................#........#............#...................#........##...................................................#.##....... +.........................#.............#.#..##..#......#.#........#...............#....##...................#.....#................ +.....#...#........#.#....................#.#...#..#...#......#......#...................###................#.....#.#...#.......#... +.....#.....................#............#....#.#..#.##...............##.........#........................#.........#....#.......... +............#..............#.#.......#...........#....................#......................#.......................#...#......... +..#....###.....##............##................###.#....................#.....#....#..................#..##..#.#...#.........#..... +......##.......#.................................#..#..#.....#..#.#.#.#....#..##.....#.....#.......................#.....#.#..###.. +.#.......................#...................#.##..............#...............#..................#.#........#...........#..#...... +........#........#..........................#...#..##.................#..#..#.##.......#..............#.#.........#....##.......... +.....#...#............##..#......##..............##.###....................#............#.......#............................#..... +........#.#.........##...#.#.....#............#.............#............#......#...............#.#..........................#..##. +...#..#.#...............#....#..##..............#............#.........##...........#.........#...........#...#....#...........#... +.##.......#..##......................................##................#.....#..................................................... +...##.......#......#...#............................................#...#.........................#.#.......#.#.......#....##..#... +..#........#...#.#.#.#.............#...#...............#...............#...................#....#....#...#.#.....#............#.... +........................#........#......#.........#......#..........................................#....#.......#..........#...... +........#...........#....#..........#.................#......#..#...#.......#...#.....................................#........#... +...#.#..#.#.#....##...#........#......................#....##......#......#...................................#...#.........#...... +..#.............#.......#..............#................#....#........#.....##................#.#....#...#.#....#......#..#........ +........#...................#...#...........................#.........................#.....#........#......................#.#..#. +.............#....##.....#.#........#......................#..#....#.....#...............#.....#......#.....#....#..#..........#... +..#....#.....#.#.#...........#.#..........#.................#..#...#..................#..........................#.#.....#..#...... +...#.....................#.......#...#...#............................##...................#.....#...#.................#........... +..#.....#.............#......##..............##...................#......#.........................##.......#..........#........... +...#................#....#.##.........................................###...........#.#.....#..#...............#...##.............. +.......#............#........#...............##..#........................................#.#...........#.....#...#..#.......#..... +......#...................#...##.............................#....#....#........#........#....#........##..........#.........#...#. +..#.#.#......##..#.#.##...........#.#........#....................#.............................................##...#.#.##........ +......#.................##..#.#......#.............##..................................#.............#....##..........#............ +.......#.#...#...........#.........................#...........#................#............##....#.........#.................#... +....#....##.........#.........#..........##.....##..............#.......................#.....#.#.#.......#...#...#.............#.. +...#....#....#.............#...............#....#....###...................#........#.............#.....#..#.........#.....#....#.. +....#..............................#..#..........#.................................#.#.................................#..#.....#.. +.......###...........................#.................#.#.........................................#.....#...#.........##.......... +...........#....#..........#..#..............##..........#...................#.#............#.......#.#..#.#....#.........#......#. +.....#..........###..#.....#.#.........#.............####..#.............#..#.......#.............#...#..........#......#.#........ +................................................................................................................................... + diff --git a/2023/_input/day_22.txt b/2023/_input/day_22.txt new file mode 100644 index 0000000..f53e185 --- /dev/null +++ b/2023/_input/day_22.txt @@ -0,0 +1,1394 @@ +4,8,311~6,8,311 +2,7,275~5,7,275 +3,8,80~4,8,80 +7,6,12~7,8,12 +0,3,259~3,3,259 +4,6,197~4,9,197 +4,6,312~4,6,312 +7,2,65~7,2,66 +9,7,272~9,8,272 +4,4,230~4,4,230 +1,4,87~3,4,87 +3,6,137~6,6,137 +7,0,253~7,1,253 +1,4,270~1,4,270 +9,5,97~9,5,100 +5,5,199~5,5,199 +0,7,271~3,7,271 +1,1,299~1,3,299 +1,5,180~1,6,180 +8,6,2~8,6,4 +9,2,8~9,4,8 +8,1,44~8,3,44 +6,7,35~8,7,35 +3,1,234~3,2,234 +4,1,38~4,4,38 +8,6,16~9,6,16 +4,8,29~6,8,29 +1,2,25~2,2,25 +6,2,291~6,2,292 +7,9,230~9,9,230 +4,4,144~4,7,144 +7,7,261~9,7,261 +4,7,149~4,9,149 +0,8,246~2,8,246 +2,4,91~2,6,91 +6,7,15~8,7,15 +3,6,99~3,6,101 +5,2,214~8,2,214 +2,7,221~2,9,221 +4,8,284~6,8,284 +6,2,100~8,2,100 +1,6,196~4,6,196 +4,4,224~7,4,224 +2,5,63~2,5,65 +6,5,111~6,7,111 +1,7,86~1,9,86 +0,5,95~3,5,95 +0,4,309~3,4,309 +1,5,152~4,5,152 +1,5,96~3,5,96 +5,0,46~7,0,46 +1,5,312~1,7,312 +9,5,57~9,8,57 +0,2,158~0,4,158 +6,4,12~9,4,12 +3,9,209~5,9,209 +2,8,210~4,8,210 +2,2,226~2,4,226 +2,7,285~5,7,285 +3,5,138~3,5,141 +6,3,174~7,3,174 +3,5,221~5,5,221 +6,4,110~6,7,110 +6,1,113~7,1,113 +3,6,268~3,7,268 +7,5,225~7,7,225 +7,7,227~7,9,227 +9,2,117~9,4,117 +8,1,161~8,3,161 +9,2,50~9,3,50 +3,6,86~7,6,86 +2,6,240~2,7,240 +7,1,51~7,4,51 +4,0,25~4,2,25 +2,6,152~5,6,152 +8,3,42~8,6,42 +5,0,59~5,0,62 +2,6,81~5,6,81 +2,5,217~2,6,217 +6,0,44~6,3,44 +0,0,145~0,1,145 +6,4,221~6,6,221 +6,5,62~9,5,62 +5,1,169~5,3,169 +4,1,35~4,3,35 +5,8,232~7,8,232 +4,2,46~6,2,46 +3,6,157~6,6,157 +3,3,82~3,4,82 +3,3,254~3,5,254 +2,6,132~2,8,132 +0,6,200~2,6,200 +7,1,186~7,2,186 +9,4,10~9,6,10 +0,1,10~0,3,10 +1,3,70~4,3,70 +9,6,262~9,8,262 +3,4,21~3,6,21 +7,3,129~9,3,129 +7,0,258~9,0,258 +6,5,272~7,5,272 +9,2,115~9,4,115 +7,0,274~7,3,274 +6,1,286~8,1,286 +5,9,233~7,9,233 +2,4,191~2,6,191 +0,5,24~0,8,24 +9,3,195~9,4,195 +6,2,255~8,2,255 +2,4,11~4,4,11 +9,8,141~9,8,143 +3,5,183~5,5,183 +4,5,250~4,6,250 +1,4,56~4,4,56 +6,1,298~6,4,298 +0,2,1~4,2,1 +3,1,91~3,4,91 +2,3,260~4,3,260 +2,7,107~5,7,107 +4,3,127~4,3,127 +3,7,194~5,7,194 +4,1,7~6,1,7 +5,1,3~5,4,3 +6,9,297~8,9,297 +3,5,198~6,5,198 +6,7,175~9,7,175 +3,2,150~6,2,150 +0,9,95~3,9,95 +5,4,229~6,4,229 +4,8,6~4,8,7 +4,1,165~5,1,165 +6,7,132~9,7,132 +0,5,275~1,5,275 +5,3,265~5,6,265 +1,2,205~1,4,205 +7,5,19~9,5,19 +7,2,245~7,2,245 +3,5,4~3,7,4 +7,5,5~7,6,5 +1,1,275~3,1,275 +3,0,96~5,0,96 +5,5,119~8,5,119 +4,7,4~4,7,7 +9,4,103~9,5,103 +3,4,54~3,5,54 +1,6,160~3,6,160 +9,0,112~9,2,112 +4,6,201~4,6,204 +0,6,53~0,6,55 +7,3,193~7,5,193 +7,7,278~7,8,278 +2,4,299~2,6,299 +2,3,109~2,4,109 +0,6,285~0,9,285 +3,1,133~5,1,133 +1,8,171~1,8,174 +3,5,273~3,8,273 +3,9,304~4,9,304 +6,1,280~9,1,280 +4,2,293~5,2,293 +7,2,292~7,2,295 +9,6,190~9,8,190 +2,5,155~3,5,155 +9,1,193~9,3,193 +0,2,168~2,2,168 +9,4,239~9,7,239 +2,0,291~2,2,291 +3,8,135~5,8,135 +0,9,288~2,9,288 +6,0,49~8,0,49 +6,1,39~6,4,39 +6,7,25~6,9,25 +3,4,29~5,4,29 +4,0,151~5,0,151 +2,4,89~2,7,89 +7,6,187~9,6,187 +8,3,112~8,3,113 +3,7,202~5,7,202 +0,6,277~0,6,279 +6,6,138~8,6,138 +7,8,74~7,9,74 +1,0,239~1,3,239 +0,3,139~3,3,139 +9,7,71~9,9,71 +9,0,168~9,2,168 +4,3,124~4,6,124 +9,6,263~9,9,263 +6,8,64~6,9,64 +4,2,12~4,4,12 +7,0,114~7,2,114 +6,5,202~6,7,202 +0,0,273~0,2,273 +5,0,6~8,0,6 +7,4,269~8,4,269 +4,9,66~7,9,66 +2,6,100~2,9,100 +4,1,210~7,1,210 +8,6,259~8,9,259 +7,7,197~9,7,197 +3,9,254~5,9,254 +2,4,35~2,7,35 +2,2,196~2,2,199 +7,1,185~7,4,185 +3,6,97~3,8,97 +3,1,39~3,3,39 +2,2,167~2,5,167 +3,3,149~3,6,149 +3,7,166~4,7,166 +5,2,212~8,2,212 +3,6,9~4,6,9 +3,4,46~3,7,46 +1,6,106~1,7,106 +7,4,172~7,7,172 +6,4,34~6,7,34 +6,0,277~8,0,277 +3,6,35~6,6,35 +2,8,173~3,8,173 +5,9,304~6,9,304 +7,6,8~7,7,8 +6,3,155~6,4,155 +2,9,43~4,9,43 +3,4,214~5,4,214 +2,2,208~2,4,208 +7,6,271~7,9,271 +8,0,217~8,1,217 +2,4,218~5,4,218 +2,1,10~4,1,10 +0,5,238~3,5,238 +3,6,24~5,6,24 +6,1,289~8,1,289 +8,6,194~8,9,194 +3,3,137~3,5,137 +6,0,269~6,2,269 +0,4,135~2,4,135 +8,7,225~8,9,225 +8,6,77~8,7,77 +6,8,181~6,9,181 +6,3,161~6,5,161 +8,0,164~8,0,165 +6,8,299~8,8,299 +1,7,129~3,7,129 +6,5,270~6,9,270 +7,8,61~9,8,61 +4,0,8~6,0,8 +6,6,299~8,6,299 +4,0,49~4,2,49 +0,6,45~0,7,45 +3,7,110~3,7,112 +0,7,113~3,7,113 +8,3,306~8,3,307 +4,5,29~5,5,29 +4,6,45~4,6,48 +3,4,261~3,6,261 +6,4,166~8,4,166 +7,7,62~9,7,62 +6,4,100~6,6,100 +7,8,106~8,8,106 +5,3,298~5,3,300 +5,5,21~8,5,21 +1,1,72~2,1,72 +3,4,177~3,5,177 +7,5,265~7,5,265 +6,1,238~8,1,238 +9,0,195~9,1,195 +7,5,263~7,7,263 +6,6,122~6,8,122 +6,4,248~8,4,248 +5,5,32~7,5,32 +3,9,258~3,9,261 +8,3,271~8,4,271 +1,0,293~5,0,293 +3,4,26~3,5,26 +2,4,243~2,6,243 +0,2,58~2,2,58 +2,1,155~5,1,155 +3,0,278~6,0,278 +5,3,142~8,3,142 +1,2,176~1,4,176 +5,6,55~5,7,55 +9,5,13~9,8,13 +4,8,213~4,9,213 +6,5,63~6,8,63 +4,6,288~4,8,288 +8,2,110~8,3,110 +1,9,37~3,9,37 +4,8,269~4,8,271 +3,9,255~4,9,255 +1,7,34~1,9,34 +5,8,304~6,8,304 +1,6,309~3,6,309 +0,4,37~0,5,37 +6,7,137~8,7,137 +3,6,88~3,8,88 +5,3,158~8,3,158 +2,1,110~4,1,110 +5,4,227~5,8,227 +9,3,54~9,5,54 +6,2,142~8,2,142 +0,7,282~0,9,282 +8,1,146~8,2,146 +7,7,48~8,7,48 +1,1,114~4,1,114 +4,9,3~6,9,3 +8,7,294~8,9,294 +4,8,153~4,9,153 +4,0,176~4,2,176 +2,8,40~3,8,40 +6,3,295~6,6,295 +7,1,28~9,1,28 +5,8,185~7,8,185 +2,1,264~2,3,264 +5,1,104~5,4,104 +2,7,244~2,9,244 +6,5,234~6,7,234 +9,1,32~9,2,32 +9,4,27~9,6,27 +3,2,28~5,2,28 +4,5,164~4,7,164 +4,1,75~4,3,75 +7,3,135~7,5,135 +7,3,277~7,3,280 +0,1,12~0,1,13 +0,0,266~0,3,266 +3,7,200~4,7,200 +6,2,271~6,4,271 +3,9,50~6,9,50 +9,4,104~9,6,104 +1,1,271~1,3,271 +7,8,72~7,9,72 +9,1,225~9,3,225 +1,7,274~1,7,276 +4,1,260~6,1,260 +4,1,178~4,1,180 +2,9,94~4,9,94 +4,6,306~4,8,306 +4,3,18~4,4,18 +7,3,128~7,4,128 +2,8,36~2,8,37 +2,2,215~5,2,215 +6,8,302~8,8,302 +6,7,272~7,7,272 +2,3,65~3,3,65 +4,1,238~4,3,238 +3,0,257~5,0,257 +1,7,123~4,7,123 +9,3,75~9,3,77 +0,8,187~1,8,187 +1,5,24~3,5,24 +1,9,39~3,9,39 +4,0,149~4,4,149 +8,5,269~8,6,269 +0,6,188~0,8,188 +4,7,34~4,7,36 +3,5,253~5,5,253 +7,6,14~7,8,14 +5,4,145~5,7,145 +6,8,296~9,8,296 +0,4,141~0,7,141 +7,7,16~7,7,18 +0,9,47~2,9,47 +9,3,171~9,4,171 +5,6,239~5,8,239 +3,5,257~4,5,257 +3,7,25~4,7,25 +3,6,310~3,6,312 +1,3,229~3,3,229 +7,1,166~9,1,166 +8,4,268~8,5,268 +9,6,107~9,6,109 +0,5,35~1,5,35 +5,1,59~7,1,59 +2,4,15~5,4,15 +3,1,45~6,1,45 +8,0,300~8,2,300 +2,7,24~2,9,24 +2,1,248~2,1,250 +8,2,246~8,4,246 +7,4,120~7,6,120 +6,6,179~6,6,181 +0,6,229~1,6,229 +3,3,80~5,3,80 +7,0,193~7,1,193 +9,6,79~9,6,82 +7,3,38~7,5,38 +4,1,58~4,1,60 +8,5,224~8,8,224 +7,7,28~7,8,28 +8,0,160~8,0,163 +4,4,57~4,4,59 +6,3,115~6,5,115 +0,5,178~0,5,180 +8,4,8~8,7,8 +0,8,107~2,8,107 +4,7,140~6,7,140 +7,5,177~7,8,177 +3,2,87~3,3,87 +8,8,64~8,8,68 +4,6,279~4,7,279 +6,1,61~8,1,61 +6,1,216~7,1,216 +7,5,10~7,6,10 +8,6,142~8,9,142 +5,3,8~8,3,8 +8,3,300~8,5,300 +0,7,131~3,7,131 +3,7,74~6,7,74 +1,4,306~3,4,306 +7,1,283~7,3,283 +2,4,18~3,4,18 +4,5,148~5,5,148 +8,7,128~8,7,130 +6,9,48~9,9,48 +3,1,220~5,1,220 +9,7,135~9,9,135 +5,6,168~6,6,168 +1,7,26~4,7,26 +1,4,264~1,4,266 +4,6,213~4,6,214 +2,4,234~4,4,234 +0,9,88~2,9,88 +0,3,33~0,5,33 +7,0,269~7,3,269 +5,8,104~7,8,104 +6,0,151~6,3,151 +0,5,175~2,5,175 +2,1,117~3,1,117 +2,2,22~4,2,22 +2,4,105~2,6,105 +9,1,287~9,3,287 +6,3,169~8,3,169 +0,6,103~2,6,103 +0,5,85~2,5,85 +1,2,26~1,4,26 +6,9,72~6,9,72 +6,5,220~8,5,220 +3,5,102~3,5,104 +2,5,77~4,5,77 +7,8,50~9,8,50 +2,7,205~2,9,205 +6,5,114~8,5,114 +9,5,124~9,5,125 +0,5,276~0,7,276 +4,0,170~5,0,170 +5,8,230~6,8,230 +5,1,214~8,1,214 +5,7,240~5,7,242 +4,5,121~4,7,121 +2,5,60~2,6,60 +0,3,296~2,3,296 +6,5,96~9,5,96 +5,1,242~5,3,242 +3,7,56~3,7,58 +2,6,43~2,8,43 +1,5,48~3,5,48 +0,3,231~2,3,231 +0,2,4~2,2,4 +2,1,89~4,1,89 +0,0,208~0,3,208 +6,2,116~6,3,116 +1,2,206~1,5,206 +2,3,232~2,6,232 +7,6,230~7,7,230 +0,5,205~0,5,207 +1,7,189~1,9,189 +4,8,211~7,8,211 +5,5,228~5,5,229 +1,6,98~1,6,99 +6,4,94~6,6,94 +2,1,86~5,1,86 +4,5,82~4,7,82 +3,4,222~5,4,222 +8,1,235~9,1,235 +8,5,285~8,8,285 +1,3,300~1,6,300 +8,2,103~8,2,106 +7,4,50~7,6,50 +9,0,261~9,2,261 +3,5,242~6,5,242 +2,8,26~2,9,26 +3,2,232~6,2,232 +6,5,64~8,5,64 +0,8,3~0,9,3 +4,5,295~4,7,295 +6,8,54~9,8,54 +0,4,303~2,4,303 +2,8,91~4,8,91 +9,8,290~9,8,290 +2,6,251~2,7,251 +5,5,225~5,6,225 +7,0,252~7,3,252 +0,6,42~0,7,42 +0,4,221~3,4,221 +2,1,272~2,3,272 +7,0,231~7,2,231 +4,1,213~4,3,213 +7,5,229~7,6,229 +2,3,108~2,4,108 +5,8,155~7,8,155 +2,6,38~2,7,38 +3,8,304~4,8,304 +6,1,300~6,2,300 +8,7,37~8,9,37 +3,3,46~5,3,46 +5,7,133~8,7,133 +3,4,217~4,4,217 +9,1,72~9,3,72 +8,8,266~8,8,266 +6,4,50~6,6,50 +5,0,209~5,3,209 +9,4,66~9,6,66 +7,8,53~9,8,53 +1,3,95~3,3,95 +6,1,119~6,4,119 +6,3,225~7,3,225 +9,7,65~9,8,65 +2,6,6~4,6,6 +2,1,273~2,1,273 +4,2,42~4,4,42 +9,5,305~9,7,305 +8,2,215~9,2,215 +4,4,176~6,4,176 +2,0,220~5,0,220 +3,9,301~7,9,301 +0,6,267~2,6,267 +3,0,54~3,1,54 +3,6,274~3,8,274 +6,4,175~6,5,175 +4,7,133~4,9,133 +6,3,32~9,3,32 +2,1,188~2,4,188 +2,1,11~3,1,11 +5,1,302~6,1,302 +6,7,283~7,7,283 +4,3,106~4,5,106 +5,6,288~5,7,288 +7,1,1~8,1,1 +7,0,68~8,0,68 +8,3,256~8,6,256 +2,3,96~2,3,99 +3,6,253~3,9,253 +4,1,270~6,1,270 +9,0,11~9,2,11 +2,1,173~2,2,173 +8,0,311~8,3,311 +5,6,312~5,7,312 +2,5,174~4,5,174 +1,7,263~2,7,263 +6,8,126~8,8,126 +3,4,152~6,4,152 +6,0,153~9,0,153 +4,0,157~4,3,157 +3,5,23~3,7,23 +1,9,210~4,9,210 +5,6,48~5,8,48 +1,2,185~1,4,185 +0,1,319~2,1,319 +5,0,256~9,0,256 +2,6,176~5,6,176 +0,3,22~0,4,22 +1,0,286~1,2,286 +3,7,299~3,7,301 +7,5,136~9,5,136 +4,1,81~4,3,81 +7,8,99~9,8,99 +5,2,235~6,2,235 +1,5,314~1,5,317 +1,7,191~3,7,191 +3,7,51~6,7,51 +5,3,282~7,3,282 +7,4,89~7,6,89 +5,5,73~7,5,73 +2,2,262~2,4,262 +7,2,302~7,3,302 +3,5,301~4,5,301 +9,8,137~9,9,137 +6,2,64~8,2,64 +0,7,89~1,7,89 +3,6,198~5,6,198 +0,1,316~1,1,316 +2,8,136~3,8,136 +5,2,54~7,2,54 +8,5,98~8,8,98 +0,5,79~2,5,79 +3,5,31~4,5,31 +1,1,301~1,2,301 +7,0,303~7,2,303 +0,1,170~0,2,170 +0,0,118~1,0,118 +3,6,200~6,6,200 +2,9,101~2,9,103 +3,5,248~5,5,248 +0,4,60~1,4,60 +0,2,261~0,5,261 +7,7,282~7,9,282 +7,0,137~7,3,137 +5,8,35~7,8,35 +3,3,296~3,4,296 +3,1,64~5,1,64 +0,5,264~0,6,264 +7,0,62~7,2,62 +7,4,300~7,6,300 +0,6,22~0,7,22 +7,9,77~9,9,77 +3,3,171~3,5,171 +7,9,265~9,9,265 +0,8,217~1,8,217 +7,6,181~8,6,181 +6,2,109~9,2,109 +2,0,7~2,2,7 +8,3,47~8,6,47 +2,0,210~5,0,210 +0,5,271~0,5,273 +3,5,232~3,6,232 +5,6,146~5,8,146 +7,3,312~7,3,314 +8,3,36~8,6,36 +1,7,12~4,7,12 +9,7,1~9,9,1 +3,5,99~3,5,101 +4,0,286~4,3,286 +1,1,131~1,4,131 +1,4,24~3,4,24 +6,5,302~7,5,302 +8,3,252~8,3,254 +1,0,292~2,0,292 +0,3,64~3,3,64 +3,0,26~5,0,26 +1,7,16~1,7,18 +4,8,157~8,8,157 +7,4,174~7,6,174 +8,8,56~9,8,56 +6,6,260~8,6,260 +1,9,190~3,9,190 +0,6,18~2,6,18 +1,3,74~1,6,74 +3,7,323~5,7,323 +1,4,134~4,4,134 +5,6,230~5,6,232 +1,8,156~3,8,156 +3,6,238~5,6,238 +9,4,21~9,5,21 +1,7,260~3,7,260 +5,3,164~5,6,164 +4,4,277~4,7,277 +5,4,182~7,4,182 +3,6,96~3,7,96 +2,5,68~2,7,68 +8,2,123~8,4,123 +1,3,236~1,5,236 +7,0,110~7,2,110 +0,9,228~3,9,228 +1,6,159~3,6,159 +8,3,194~8,5,194 +1,0,74~1,2,74 +4,0,281~7,0,281 +2,2,15~3,2,15 +6,6,31~6,8,31 +5,2,227~8,2,227 +9,4,64~9,6,64 +3,0,51~4,0,51 +7,6,47~7,9,47 +9,3,239~9,3,240 +2,2,193~2,4,193 +2,8,79~4,8,79 +3,3,62~3,4,62 +5,1,234~9,1,234 +0,8,207~2,8,207 +8,2,116~9,2,116 +8,2,120~9,2,120 +1,0,213~3,0,213 +4,6,151~4,9,151 +4,1,265~7,1,265 +8,2,193~8,5,193 +1,5,15~1,8,15 +8,4,275~8,5,275 +7,2,47~9,2,47 +0,3,8~0,6,8 +6,8,124~8,8,124 +2,3,233~3,3,233 +3,6,162~5,6,162 +5,8,178~8,8,178 +1,6,248~1,9,248 +3,3,267~3,5,267 +9,5,60~9,5,61 +4,0,123~4,1,123 +3,2,190~6,2,190 +1,1,243~1,2,243 +1,3,129~4,3,129 +9,1,167~9,4,167 +2,6,206~2,8,206 +1,0,117~1,3,117 +9,1,10~9,2,10 +6,6,176~7,6,176 +1,5,215~2,5,215 +4,4,73~4,6,73 +8,5,6~8,7,6 +6,5,327~6,8,327 +1,4,175~4,4,175 +1,1,226~1,4,226 +1,5,71~4,5,71 +2,6,33~2,9,33 +7,2,27~7,3,27 +9,1,52~9,4,52 +0,6,50~0,8,50 +5,3,311~7,3,311 +7,3,5~7,3,7 +0,2,138~0,4,138 +2,6,9~2,8,9 +3,4,49~6,4,49 +2,5,59~4,5,59 +2,7,147~4,7,147 +1,3,92~1,5,92 +7,6,286~7,9,286 +2,5,197~2,6,197 +5,1,136~5,3,136 +3,0,93~3,1,93 +1,7,44~1,9,44 +7,9,31~7,9,33 +3,4,229~3,6,229 +5,4,249~7,4,249 +3,9,178~4,9,178 +0,1,281~0,2,281 +6,3,288~6,5,288 +1,4,33~2,4,33 +0,0,263~4,0,263 +3,5,142~6,5,142 +4,1,77~4,4,77 +0,4,144~0,6,144 +2,1,172~2,2,172 +3,0,113~6,0,113 +3,9,41~6,9,41 +5,6,142~5,9,142 +0,0,276~0,2,276 +5,9,1~8,9,1 +8,6,279~8,9,279 +0,6,170~0,7,170 +9,4,292~9,7,292 +2,2,57~2,5,57 +6,3,11~6,5,11 +0,2,5~0,4,5 +2,4,31~2,6,31 +2,6,80~2,8,80 +2,3,183~2,5,183 +3,3,169~3,6,169 +4,3,125~7,3,125 +2,1,271~4,1,271 +4,0,163~4,2,163 +5,5,186~7,5,186 +4,0,54~4,2,54 +1,5,186~1,8,186 +1,6,95~4,6,95 +1,4,269~3,4,269 +0,7,116~0,9,116 +6,0,283~8,0,283 +3,4,300~3,6,300 +1,2,287~1,2,288 +9,4,139~9,5,139 +9,4,307~9,6,307 +9,7,287~9,8,287 +4,7,33~6,7,33 +2,7,241~2,8,241 +1,9,27~3,9,27 +5,3,102~7,3,102 +4,6,131~4,7,131 +4,0,83~4,3,83 +4,9,27~6,9,27 +6,7,289~9,7,289 +2,3,283~5,3,283 +0,8,11~2,8,11 +2,5,76~2,8,76 +4,6,92~4,9,92 +7,7,142~7,7,144 +2,5,125~2,8,125 +5,9,5~6,9,5 +2,1,65~5,1,65 +5,2,289~8,2,289 +3,7,176~3,9,176 +9,0,282~9,0,284 +8,1,35~8,4,35 +2,1,71~4,1,71 +2,7,2~2,8,2 +5,4,179~5,6,179 +5,9,2~8,9,2 +1,1,246~4,1,246 +5,8,235~7,8,235 +5,8,310~7,8,310 +7,2,1~7,2,1 +2,0,114~6,0,114 +4,3,146~4,5,146 +5,5,170~7,5,170 +1,8,168~3,8,168 +9,7,24~9,9,24 +0,2,60~0,2,62 +0,1,33~0,2,33 +8,9,145~8,9,147 +0,2,304~0,4,304 +2,7,276~2,7,277 +1,5,28~3,5,28 +0,1,267~0,3,267 +3,4,227~4,4,227 +3,0,320~6,0,320 +7,2,246~7,2,249 +3,0,53~5,0,53 +2,1,152~4,1,152 +4,5,129~6,5,129 +4,0,183~4,1,183 +9,6,20~9,9,20 +3,1,68~6,1,68 +7,8,236~7,8,239 +5,8,102~7,8,102 +2,6,237~5,6,237 +1,9,223~3,9,223 +4,3,171~5,3,171 +5,7,324~8,7,324 +0,7,117~0,7,118 +6,8,2~8,8,2 +9,1,54~9,2,54 +8,6,178~8,7,178 +8,6,59~8,8,59 +6,4,185~6,4,185 +1,9,206~3,9,206 +0,5,216~3,5,216 +3,3,85~3,6,85 +5,7,91~8,7,91 +5,2,43~5,4,43 +6,1,189~8,1,189 +1,7,247~4,7,247 +8,8,58~8,9,58 +3,0,161~3,2,161 +4,2,139~6,2,139 +5,1,48~5,1,51 +6,8,280~7,8,280 +5,2,230~8,2,230 +4,0,72~4,2,72 +0,0,279~0,2,279 +2,5,259~4,5,259 +6,0,260~9,0,260 +7,7,136~8,7,136 +9,4,266~9,6,266 +0,7,212~0,9,212 +4,4,17~7,4,17 +2,0,310~2,3,310 +6,3,249~8,3,249 +8,6,302~9,6,302 +6,9,29~8,9,29 +7,2,192~9,2,192 +0,4,39~0,6,39 +6,8,276~8,8,276 +3,6,154~3,8,154 +2,0,169~5,0,169 +1,2,303~1,3,303 +5,7,27~5,7,29 +6,2,224~6,3,224 +7,8,179~8,8,179 +3,2,12~3,5,12 +7,9,35~9,9,35 +3,2,289~4,2,289 +5,9,160~8,9,160 +4,1,4~5,1,4 +3,3,68~5,3,68 +3,1,209~3,4,209 +2,6,294~2,7,294 +3,7,256~4,7,256 +0,8,83~1,8,83 +8,7,273~8,9,273 +1,7,31~1,9,31 +4,3,294~4,5,294 +7,7,304~7,9,304 +3,1,240~5,1,240 +7,1,2~8,1,2 +2,8,170~2,8,172 +0,5,106~0,7,106 +1,5,82~1,8,82 +3,3,293~6,3,293 +7,1,50~7,2,50 +6,8,293~9,8,293 +2,9,67~4,9,67 +0,0,271~0,3,271 +2,8,102~2,8,103 +3,2,189~3,3,189 +6,7,76~8,7,76 +6,6,39~8,6,39 +7,3,54~7,4,54 +4,6,282~4,7,282 +7,4,273~9,4,273 +5,4,267~8,4,267 +7,2,296~7,2,297 +5,2,109~5,4,109 +0,2,12~0,3,12 +3,3,206~6,3,206 +3,1,121~7,1,121 +4,6,309~4,9,309 +3,8,297~6,8,297 +3,7,297~5,7,297 +2,6,174~6,6,174 +4,6,252~6,6,252 +0,2,25~0,4,25 +7,5,268~7,8,268 +6,1,171~6,3,171 +2,5,242~2,6,242 +5,5,47~5,7,47 +3,7,258~5,7,258 +5,6,30~8,6,30 +9,7,200~9,7,200 +6,3,223~9,3,223 +4,5,132~7,5,132 +1,6,291~3,6,291 +0,2,206~0,3,206 +4,6,263~6,6,263 +8,0,310~8,3,310 +5,8,16~8,8,16 +8,9,39~9,9,39 +8,0,26~8,3,26 +8,8,38~8,8,40 +6,8,214~6,9,214 +0,2,155~2,2,155 +5,9,31~6,9,31 +4,3,105~7,3,105 +0,5,114~0,7,114 +8,3,23~8,5,23 +6,8,263~7,8,263 +0,7,90~2,7,90 +4,0,292~4,2,292 +3,0,164~3,1,164 +8,3,312~8,3,312 +1,1,247~1,2,247 +5,0,110~5,2,110 +2,1,134~4,1,134 +1,2,140~1,4,140 +5,7,230~6,7,230 +0,7,31~0,8,31 +9,3,135~9,5,135 +7,0,194~9,0,194 +1,7,283~1,9,283 +0,4,233~2,4,233 +2,2,318~5,2,318 +2,6,296~3,6,296 +7,7,61~8,7,61 +0,8,211~3,8,211 +3,8,299~3,8,301 +3,3,284~5,3,284 +1,3,2~2,3,2 +0,7,318~3,7,318 +4,1,274~4,2,274 +0,3,312~2,3,312 +0,9,307~3,9,307 +6,7,125~9,7,125 +3,2,212~3,4,212 +3,4,320~3,7,320 +7,3,167~7,5,167 +7,5,65~9,5,65 +5,4,263~6,4,263 +6,0,59~6,0,62 +4,2,51~4,2,51 +4,1,32~4,3,32 +1,1,1~1,1,2 +7,1,165~7,5,165 +6,1,69~9,1,69 +1,1,208~1,3,208 +0,1,6~0,4,6 +0,5,166~3,5,166 +1,5,167~1,8,167 +6,2,51~6,4,51 +9,2,227~9,2,229 +3,2,81~3,4,81 +2,8,276~3,8,276 +4,0,56~6,0,56 +7,1,72~7,1,75 +6,5,163~6,6,163 +4,9,155~5,9,155 +5,3,34~7,3,34 +9,4,193~9,7,193 +4,3,167~5,3,167 +6,9,69~9,9,69 +2,2,169~2,4,169 +3,8,36~5,8,36 +6,3,109~6,5,109 +3,9,230~5,9,230 +3,4,9~6,4,9 +0,7,210~0,9,210 +8,6,189~8,6,191 +3,8,265~6,8,265 +0,2,313~0,5,313 +1,4,77~1,6,77 +7,8,261~9,8,261 +1,2,183~1,5,183 +1,7,21~2,7,21 +9,9,178~9,9,181 +0,7,169~1,7,169 +9,4,242~9,6,242 +1,5,212~3,5,212 +3,2,258~3,5,258 +6,2,285~6,5,285 +5,6,272~6,6,272 +7,5,57~7,8,57 +9,1,245~9,4,245 +3,7,39~5,7,39 +6,4,118~6,6,118 +5,5,89~5,7,89 +1,4,171~1,7,171 +6,3,50~8,3,50 +5,3,4~5,4,4 +3,7,177~4,7,177 +8,0,298~8,3,298 +5,4,266~5,6,266 +3,2,135~3,4,135 +9,7,27~9,7,27 +4,3,27~4,5,27 +6,0,241~6,2,241 +4,4,226~6,4,226 +0,7,195~1,7,195 +2,4,223~3,4,223 +2,6,220~2,7,220 +6,0,282~8,0,282 +2,0,295~2,2,295 +0,7,144~0,8,144 +6,1,258~6,3,258 +3,7,3~5,7,3 +0,5,147~0,5,149 +1,1,302~3,1,302 +0,0,87~3,0,87 +7,1,31~9,1,31 +0,4,209~0,6,209 +1,7,262~1,9,262 +4,2,235~4,4,235 +2,1,293~2,5,293 +3,5,73~3,7,73 +6,7,291~7,7,291 +4,2,65~4,4,65 +6,3,74~6,5,74 +9,1,238~9,4,238 +5,3,187~7,3,187 +5,5,92~8,5,92 +4,1,107~7,1,107 +5,1,105~7,1,105 +7,8,284~9,8,284 +7,1,307~7,3,307 +4,4,300~5,4,300 +5,6,166~7,6,166 +0,8,267~3,8,267 +2,4,288~4,4,288 +3,0,156~3,2,156 +5,3,112~5,5,112 +3,2,86~5,2,86 +9,5,22~9,7,22 +8,0,62~8,3,62 +2,4,296~2,5,296 +2,4,298~4,4,298 +5,6,144~7,6,144 +3,3,192~3,5,192 +3,8,32~6,8,32 +7,1,240~7,4,240 +5,6,122~5,7,122 +7,0,65~9,0,65 +2,6,211~4,6,211 +5,5,26~7,5,26 +5,4,52~5,7,52 +7,7,307~7,9,307 +4,5,297~4,5,299 +2,0,312~2,2,312 +7,6,76~9,6,76 +3,3,154~4,3,154 +7,1,288~7,4,288 +1,4,51~3,4,51 +5,3,36~7,3,36 +0,5,265~0,7,265 +1,6,315~1,8,315 +0,9,6~2,9,6 +6,1,172~8,1,172 +7,0,116~7,0,119 +5,2,174~6,2,174 +5,5,317~5,5,317 +9,1,282~9,1,284 +3,6,53~3,8,53 +1,8,139~3,8,139 +1,1,37~1,3,37 +3,7,76~5,7,76 +6,2,217~6,5,217 +8,7,18~9,7,18 +4,5,180~7,5,180 +4,3,41~6,3,41 +7,2,12~9,2,12 +5,0,215~6,0,215 +9,2,199~9,2,202 +3,5,29~3,7,29 +3,2,5~5,2,5 +0,0,10~2,0,10 +7,6,139~8,6,139 +6,1,279~9,1,279 +5,3,31~6,3,31 +0,8,287~0,8,289 +6,5,222~8,5,222 +5,4,55~5,4,57 +1,9,246~2,9,246 +4,2,21~6,2,21 +3,0,317~4,0,317 +3,0,260~4,0,260 +8,7,264~8,9,264 +2,8,212~2,8,214 +1,8,81~2,8,81 +2,9,265~2,9,267 +3,3,126~5,3,126 +0,0,120~1,0,120 +8,1,70~8,1,70 +5,2,295~5,5,295 +3,3,48~4,3,48 +0,5,27~2,5,27 +9,7,196~9,8,196 +1,7,194~1,9,194 +5,7,309~8,7,309 +2,6,203~2,8,203 +1,4,57~1,6,57 +0,3,172~2,3,172 +6,4,70~6,7,70 +5,3,286~5,5,286 +6,6,73~8,6,73 +6,8,3~6,8,3 +5,6,278~5,7,278 +9,3,170~9,5,170 +5,7,26~7,7,26 +9,4,244~9,7,244 +1,3,298~1,5,298 +8,7,198~8,7,198 +2,5,181~2,7,181 +3,6,263~3,6,265 +1,0,283~4,0,283 +6,1,173~6,3,173 +0,0,270~0,3,270 +1,0,264~2,0,264 +3,4,16~3,5,16 +4,8,152~6,8,152 +3,0,130~3,3,130 +6,4,163~8,4,163 +3,9,101~5,9,101 +3,2,2~3,5,2 +2,5,272~2,7,272 +2,3,308~2,6,308 +3,8,51~5,8,51 +7,1,190~9,1,190 +7,0,299~7,2,299 +2,2,153~2,3,153 +4,8,4~4,9,4 +4,5,25~6,5,25 +2,0,318~2,0,318 +6,4,13~8,4,13 +6,3,232~6,5,232 +5,7,141~7,7,141 +4,7,267~4,8,267 +7,7,65~8,7,65 +4,8,198~4,8,200 +5,0,235~5,1,235 +7,5,16~7,6,16 +3,6,222~6,6,222 +3,5,144~3,5,146 +6,0,2~6,0,4 +9,3,130~9,3,132 +1,0,86~1,3,86 +0,7,127~2,7,127 +5,9,182~7,9,182 +1,3,29~3,3,29 +7,5,184~7,7,184 +3,4,260~3,6,260 +7,2,190~7,4,190 +2,0,176~3,0,176 +8,2,143~8,3,143 +0,2,28~0,4,28 +0,8,32~0,9,32 +1,6,290~4,6,290 +6,8,28~6,9,28 +5,6,58~5,7,58 +3,5,197~5,5,197 +1,8,47~1,8,47 +5,0,224~5,0,224 +1,2,235~1,5,235 +6,6,227~7,6,227 +0,6,231~0,7,231 +2,1,315~2,3,315 +8,9,4~9,9,4 +2,0,266~5,0,266 +2,4,209~2,7,209 +7,3,308~7,6,308 +5,3,140~8,3,140 +9,0,14~9,0,16 +8,7,22~8,9,22 +5,6,97~7,6,97 +0,3,143~0,3,145 +3,5,165~3,7,165 +2,0,222~2,3,222 +4,0,165~7,0,165 +8,4,244~8,4,244 +4,6,134~6,6,134 +8,1,241~8,4,241 +1,3,30~4,3,30 +3,5,126~5,5,126 +8,0,156~8,0,159 +0,9,25~3,9,25 +4,1,218~6,1,218 +0,3,203~3,3,203 +0,8,89~0,9,89 +4,1,56~6,1,56 +1,2,85~4,2,85 +5,9,302~8,9,302 +7,4,26~9,4,26 +4,0,213~6,0,213 +5,0,117~5,0,119 +8,7,295~9,7,295 +6,4,27~6,6,27 +3,4,173~3,5,173 +0,3,173~0,4,173 +8,5,221~9,5,221 +6,4,24~6,7,24 +0,2,92~0,5,92 +1,8,105~3,8,105 +7,1,271~8,1,271 +6,7,268~6,9,268 +0,4,90~1,4,90 +6,5,171~6,7,171 +3,5,194~5,5,194 +3,1,160~5,1,160 +3,8,183~6,8,183 +2,6,22~5,6,22 +0,6,193~2,6,193 +6,3,306~6,4,306 +4,1,276~6,1,276 +5,5,204~5,7,204 +7,3,2~7,6,2 +4,6,120~6,6,120 +6,3,106~6,6,106 +9,8,136~9,9,136 +4,0,3~4,3,3 +5,6,6~5,8,6 +7,6,145~9,6,145 +2,2,273~2,2,274 +8,2,39~8,5,39 +9,0,281~9,2,281 +1,3,268~1,4,268 +1,9,51~3,9,51 +5,4,106~5,7,106 +6,8,282~6,9,282 +8,2,55~8,3,55 +9,3,246~9,5,246 +7,8,36~7,9,36 +9,5,295~9,5,297 +0,4,20~0,6,20 +0,7,29~2,7,29 +2,3,60~4,3,60 +0,6,232~0,9,232 +1,2,242~1,5,242 +9,2,122~9,5,122 +4,5,165~4,6,165 +1,9,263~3,9,263 +3,2,277~6,2,277 +8,3,175~8,5,175 +1,7,214~1,8,214 +6,6,66~6,6,68 +1,2,29~2,2,29 +5,0,295~8,0,295 +1,1,89~1,2,89 +6,3,304~8,3,304 +5,1,113~5,2,113 +6,6,297~6,7,297 +6,7,64~8,7,64 +2,0,285~2,0,288 +4,8,82~6,8,82 +5,6,140~7,6,140 +6,4,121~7,4,121 +6,3,25~9,3,25 +7,6,284~9,6,284 +3,5,33~5,5,33 +0,1,142~0,3,142 +4,3,28~5,3,28 +6,2,20~6,4,20 +2,8,46~2,9,46 +5,5,173~8,5,173 +5,8,159~5,9,159 +2,5,246~5,5,246 +5,1,70~5,1,70 +7,2,241~7,2,243 +2,1,113~2,2,113 +7,5,117~9,5,117 +3,6,235~5,6,235 +5,5,4~5,7,4 +8,6,31~8,8,31 +7,2,138~7,3,138 +5,6,290~5,7,290 +6,3,290~6,3,292 +5,1,266~7,1,266 +5,0,31~5,2,31 +8,7,20~8,8,20 +1,9,98~3,9,98 +7,7,46~8,7,46 +2,3,152~4,3,152 +0,2,176~0,5,176 +2,5,321~3,5,321 +7,0,213~7,1,213 +7,2,99~7,5,99 +2,2,235~3,2,235 +0,5,11~0,7,11 +9,8,139~9,9,139 +2,4,74~2,7,74 +1,3,186~3,3,186 +4,0,214~4,0,217 +0,4,203~2,4,203 +0,8,279~3,8,279 +7,6,294~9,6,294 +8,6,282~9,6,282 +8,2,258~8,5,258 +0,3,35~0,3,37 +7,2,57~8,2,57 +5,4,260~8,4,260 +1,1,261~1,4,261 +3,2,36~6,2,36 +1,3,34~3,3,34 +6,2,77~6,4,77 +7,7,270~9,7,270 +2,6,239~3,6,239 +4,6,239~4,7,239 +6,6,159~6,7,159 +1,8,282~3,8,282 +3,5,240~3,7,240 +3,0,4~5,0,4 +4,0,268~4,3,268 +3,3,45~5,3,45 +4,3,63~5,3,63 +5,3,220~8,3,220 +7,6,285~7,7,285 +3,0,279~5,0,279 +0,1,31~0,4,31 +1,6,226~1,9,226 +3,6,44~5,6,44 +3,2,97~3,4,97 +2,3,206~2,4,206 +5,7,99~8,7,99 +4,6,127~4,6,130 +1,6,178~3,6,178 +3,4,42~3,7,42 +5,3,314~5,6,314 +9,7,176~9,9,176 +1,0,5~1,1,5 +5,3,221~7,3,221 +0,8,41~3,8,41 +4,4,179~4,4,179 +2,1,109~4,1,109 +6,2,172~6,4,172 +0,8,208~2,8,208 +9,8,38~9,9,38 +3,7,124~3,8,124 +1,0,316~3,0,316 +9,1,134~9,4,134 +7,2,53~9,2,53 +7,1,30~9,1,30 +3,0,298~5,0,298 +1,0,214~1,2,214 +2,4,194~2,4,196 +6,9,298~8,9,298 +1,2,315~1,4,315 +9,2,196~9,3,196 +0,6,47~0,8,47 +8,1,49~8,2,49 +1,0,313~1,3,313 +3,1,294~3,3,294 +6,7,286~6,7,288 +8,0,35~8,0,37 +2,5,219~3,5,219 +2,9,35~4,9,35 +0,3,202~0,6,202 +0,4,269~0,6,269 +1,3,31~3,3,31 +1,1,264~1,1,266 +6,2,314~6,4,314 +4,5,289~6,5,289 +8,0,34~8,1,34 +6,4,7~9,4,7 +5,1,263~5,2,263 +2,1,62~4,1,62 +3,0,223~6,0,223 +4,3,189~6,3,189 +0,0,123~0,0,124 +4,0,168~6,0,168 +0,2,236~0,4,236 +1,3,224~2,3,224 +1,9,40~2,9,40 +3,3,264~3,5,264 +5,7,174~7,7,174 +2,7,250~3,7,250 +1,0,225~2,0,225 +1,3,168~2,3,168 +8,4,43~8,8,43 +4,1,168~4,2,168 +1,0,173~4,0,173 +6,4,5~7,4,5 +3,1,139~6,1,139 +1,8,3~2,8,3 +4,3,285~4,5,285 diff --git a/2023/_input/day_23.txt b/2023/_input/day_23.txt new file mode 100644 index 0000000..c49da98 --- /dev/null +++ b/2023/_input/day_23.txt @@ -0,0 +1,142 @@ +#.########################################################################################################################################### +#.........#...###.....#...#...###...#...#.....#.....#...#...###.......#...#...#...###.......###...#...#...#...#.....#####...........#...#...# +#########.#.#.###.###.#.#.#.#.###.#.#.#.#.###.#.###.#.#.#.#.###.#####.#.#.#.#.#.#.###.#####.###.#.#.#.#.#.#.#.#.###.#####.#########.#.#.#.#.# +#.........#.#.....#...#.#.#.#...#.#.#.#.#...#.#.#...#.#.#.#...#.....#.#.#.#.#...#...#.....#.....#.#.#.#.#.#.#.#.#...#.....#.........#.#.#.#.# +#.#########.#######.###.#.#.###.#.#.#.#.###.#.#.#.###.#.#.###.#####.#.#.#.#.#######.#####.#######.#.#.#.#.#.#.#.#.###.#####.#########.#.#.#.# +#.....#...#...#...#.###.#.#.#...#.#...#.....#.#.#...#.#.#.#...#.....#.#.#.#.....#...#...#...#.....#.#.#.#.#.#.#.#...#.....#...........#...#.# +#####.#.#.###.#.#.#.###.#.#.#.###.###########.#.###.#.#.#.#.###.#####.#.#.#####.#.###.#.###.#.#####.#.#.#.#.#.#.###.#####.#################.# +###...#.#...#...#.#.#...#...#...#.........#...#.#...#.#.#.#.###.....#.#.#...#...#...#.#.###.#...#...#.#.#...#...#...#...#.#.................# +###.###.###.#####.#.#.#########.#########.#.###.#.###.#.#.#.#######.#.#.###.#.#####.#.#.###.###.#.###.#.#########.###.#.#.#.################# +#...#...###...#...#...#.........#.......#.#...#.#...#.#.#.#.#...###.#...#...#.....#...#.>.>.#...#.#...#.#.........###.#...#...###...#.......# +#.###.#######.#.#######.#########.#####.#.###.#.###.#.#.#.#.#.#.###.#####.#######.#######v###.###.#.###.#.###########.#######.###.#.#.#####.# +#.....#...#...#.#.......#...#.....#.....#...#.#.#...#.#.#.#...#.#...#...#.#...###.......#...#...#.#.#...#...........#.......#...#.#.#.#.....# +#######.#.#.###.#.#######.#.#.#####.#######.#.#.#.###.#.#.#####.#.###.#.#.#.#.#########.###.###.#.#.#.#############.#######.###.#.#.#.#.##### +#.....#.#.#.....#.......#.#.#.....#.#...###.#...#...#.#.#.#...#.#.#...#.#.#.#...#.......#...###.#.#.#.#.............#...###...#...#...#.....# +#.###.#.#.#############.#.#.#####.#.#.#.###.#######.#.#.#.#.#.#.#.#.###.#.#.###.#.#######.#####.#.#.#.#.#############.#.#####.#############.# +#...#...#...#...#.....#.#.#.#.....#.#.#...#.....#...#.#.#.#.#...#...#...#.#.###.#.###...#.....#.#.#.#.#...#.>.>.###...#.#.....#.......#.....# +###.#######.#.#.#.###.#.#.#.#.#####.#.###.#####.#.###.#.#.#.#########.###.#.###.#.###.#.#####.#.#.#.#.###.#.#v#.###.###.#.#####.#####.#.##### +###.....#...#.#.#...#...#.#.#.....#.#.#...###...#.#...#.#.#...#.>.>...#...#...#.#.#...#.......#.#.#.#...#...#.#...#...#.#.....#.#...#...#...# +#######.#.###.#.###v#####.#.#####.#.#.#.#####.###.#.###.#.###.#.#v#####.#####.#.#.#.###########.#.#.###.#####.###.###.#.#####.#.#.#.#####.#.# +#.......#...#.#.###.>...#.#...#...#...#.>.>.#.#...#.#...#...#...#...###.....#.#...#...........#.#.#.....###...###...#.#...#...#...#.#.....#.# +#.#########.#.#.###v###.#.###.#.#########v#.#.#.###.#.#####.#######.#######.#.###############.#.#.#########.#######.#.###.#.#######.#.#####.# +#.........#...#...#...#.#.#...#.#.....#...#.#.#.#...#...#...###...#.......#...###.......#.....#.#.#.........#...###.#.#...#...#...#...#.....# +#########.#######.###.#.#.#.###.#.###.#.###.#.#.#.#####.#.#####.#.#######.#######.#####.#.#####.#.#.#########.#.###.#.#.#####.#.#.#####.##### +#.........#.....#.....#...#...#.#...#.#...#...#.#.....#.#.#.....#.#...#...###...#.....#.#...###...#...........#...#...#.......#.#.......#...# +#.#########.###.#############.#.###.#.###.#####.#####.#.#.#.#####.#.#.#.#####.#.#####.#.###.#####################.#############.#########.#.# +#.....#.....#...#.......#...#.#.#...#.....#.....#.....#.#.#.#...#...#...#.....#.###...#...#.....#.................#...#...#...#.........#.#.# +#####.#.#####.###.#####.#.#.#.#.#.#########.#####.#####.#.#.#.#.#########.#####.###.#####.#####.#.#################.#.#.#.#.#.#########.#.#.# +#.....#.#.....###...#...#.#.#.#.#.........#.....#...###...#...#.........#.....#.....#...#.......#...............###.#.#.#.#.#.#...#.....#.#.# +#.#####.#v#########.#.###.#.#.#.#########.#####.###.###################.#####.#######.#.#######################.###.#.#.#.#.#.#.#.#v#####.#.# +#.......#.>.#.....#.#...#.#.#...#...#...#.#.....#...#...#...#...........#.....#.....#.#.....#...................#...#...#.#.#.#.#.>.#.....#.# +#########v#.#.###.#.###.#.#.#####.#.#.#.#.#.#####.###.#.#.#.#.###########.#####.###.#.#####.#.###################.#######.#.#.#.###v#.#####.# +#.........#...#...#.#...#.#.###...#.#.#...#.......###.#...#.#.......#...#.....#.###...#...#.#...........#.......#.......#...#...###...#.....# +#.#############.###.#.###.#.###.###.#.###############.#####.#######.#.#.#####.#.#######.#.#.###########.#.#####.#######.###############.##### +#...........#...#...#...#.#.....###...#...###.......#.#...#.........#.#.#...#...###.....#...#...#.....#...#.....#.......#...............#...# +###########.#.###.#####.#.#############.#.###.#####.#.#.#.###########.#.#.#.#######.#########.#.#.###.#####.#####.#######.###############.#.# +#...#####...#.....###...#...#...#.....#.#...#.....#.#...#...#.........#.#.#.........###...###.#.#.#...#...#.....#.....###.......#.........#.# +#.#.#####.###########.#####.#.#.#.###.#.###.#####.#.#######.#.#########.#.#############.#.###.#.#.#.###.#.#####.#####.#########.#.#########.# +#.#.......#...###...#...###...#.#.#...#...#.#...#.#...#...#...#.........#.............#.#...#.#...#.#...#...#...#...#.....###...#.#.........# +#.#########.#.###.#.###.#######v#.#.#####.#.#.#.#.###.#.#.#####.#####################.#.###.#.#####.#.#####.#.###.#.#####.###.###.#.######### +#.#.......#.#.....#...#.#...#.>.>.#.#...#.#.#.#.#...#.#.#.#...#.#.......#...#...#.....#...#.#...#...#.#.....#...#.#...#...#...#...#...#.....# +#.#.#####.#.#########.#.#.#.#.#v###.#.#.#.#.#.#.###.#.#.#.#.#.#v#.#####.#.#.#.#.#.#######.#.###.#.###.#.#######v#.###.#.###.###.#####.#.###.# +#.#.###...#.#.........#...#...#...#.#.#.#.#...#.#...#.#.#.#.#.>.>.#.....#.#.#.#.#...#...#.#.....#.#...#...#...>.>.###...###...#.#.....#.#...# +#.#.###.###.#.###################.#.#.#.#.#####.#.###.#.#.#.###v###.#####.#.#.#.###v#.#.#.#######.#.#####.#.###v#############.#.#.#####.#.### +#.#...#...#.#.#...........#.......#.#.#.#.....#.#...#.#.#...###.###.....#.#...#.#.>.>.#.#...#.....#.....#.#.###.............#...#.#...#.#.### +#.###.###.#.#.#.#########.#.#######.#.#.#####.#.###.#.#.#######.#######.#.#####.#.#v###.###.#.#########.#.#.###############.#####.#.#.#.#.### +#.....###...#...#.........#.#...###.#.#.#...#.#.#...#...###.....#.....#.#...###...#...#.#...#.....#...#.#...#.....#...#...#.....#...#...#...# +#################.#########.#.#.###.#.#.#.#.#.#.#.#########.#####.###.#.###.#########.#.#.#######.#.#.#.#####.###.#.#.#.#.#####.###########.# +###...#.........#.......###...#...#...#.#.#...#...#####...#.....#.#...#...#...#.......#...###.....#.#.#.###...###.#.#.#.#.#...#.#...........# +###.#.#.#######.#######.#########.#####.#.#############.#.#####.#.#.#####.###.#.#############.#####.#.#.###.#####.#.#.#.#.#.#.#.#.########### +###.#.#.......#...#...#.#.........#...#...###...#...#...#.#.....#.#.#...#.....#.#.......#...#...#...#...#...#.....#.#.#.#...#...#.........### +###.#.#######.###.#.#.#.#.#########.#.#######.#.#.#.#.###.#.#####.#.#.#.#######.#.#####.#.#.###.#.#######.###.#####.#.#.#################.### +#...#...#...#...#...#...#...#.......#.###...#.#.#.#.#...#.#.......#.#.#.###...#...#.....#.#.#...#...###...###.......#...###...#...#.....#...# +#.#####.#.#.###.###########.#.#######.###.#.#.#.#.#.###.#.#########v#.#.###.#.#####.#####.#.#.#####.###.###################.#.#.#.#.###.###.# +#.#...#...#.....#...#...###...#.......#...#.#.#.#.#...#.#.......#.>.>.#...#.#.#...#.#...#.#.#.......#...###...#...#...#.....#.#.#.#.#...#...# +#.#.#.###########.#.#.#.#######.#######.###.#.#.#.###.#.#######.#.#v#####.#.#.#.#.#.#.#.#.#.#########.#####.#.#.#.#.#.#.#####.#.#.#.#.###.### +#.#.#.#...#.....#.#...#.....#...#.....#...#.#.#.#...#.#.#.......#.#.#.....#.#.#.#.#.#.#.#.#.#...#...#.......#.#.#...#.#.....#...#.#.#.#...### +#.#.#.#.#.#.###.#.#########.#.###.###.###.#.#.#.###.#.#.#.#######.#.#.#####.#.#.#.#v#.#.#.#.#.#.#.#.#########.#.#####.#####.#####.#.#.#.##### +#...#...#...###.#.#.........#...#...#...#.#...#.#...#.#.#.......#.#.#...#...#.#.#.>.>.#...#.#.#.#.#.#.........#...#...#...#.#.....#.#.#...### +###############.#.#v###########.###.###.#.#####.#.###.#.#######.#.#.###.#.###.#.###v#######.#.#.#.#.#v###########.#.###.#.#.#.#####.#.###.### +###...#...#...#...#.>...#.....#...#...#.#...#...#...#.#.#.....#...#...#.#.###.#.###...#.....#.#.#.#.>.>.#.....#...#.#...#.#.#.#.....#...#...# +###.#.#.#.#.#.#####v###.#.###.###.###.#.###.#.#####.#.#.#.###.#######.#.#.###.#.#####.#.#####.#.#.###v#.#.###.#.###.#.###.#.#.#.#######.###.# +#...#...#...#...###.#...#.#...#...#...#...#.#...#...#.#.#...#.#...#...#.#.#...#.#...#.#.....#.#...#...#...#...#.#...#.#...#.#.#.....#...#...# +#.#############.###.#.###.#.###v###.#####.#.###.#.###.#.###.#.#.#.#.###.#.#.###.#.#.#.#####.#.#####.#######.###.#.###.#.###.#.#####.#.###v### +#...#.........#...#.#.....#...>.>.#.....#.#.#...#.#...#.#...#.#.#.#...#...#.....#.#...#...#...#...#.......#.#...#...#.#.#...#...#...#...>.### +###.#.#######.###.#.###########v#.#####.#.#.#.###.#.###.#.###.#.#.###.###########.#####.#.#####.#.#######.#.#.#####.#.#.#.#####.#.#######v### +###...#.......#...#...#.........#.......#...#.#...#...#.#...#...#.#...###.....###.......#.....#.#.........#.#...#...#.#.#.....#.#.#.......### +#######.#######.#####.#.#####################.#.#####.#.###.#####.#.#####.###.###############.#.###########.###.#.###.#.#####.#.#.#.######### +#.....#.......#...#...#...#.........#.......#...#...#...###.....#.#.....#...#.................#.....#.....#.#...#...#.#.#.....#.#.#.........# +#.###.#######.###.#.#####.#.#######.#.#####.#####.#.###########.#.#####.###.#######################.#.###.#.#.#####.#.#.#.#####.#.#########.# +#...#.#...#...#...#.....#...#.......#.#.....#...#.#.#...#.......#.......###.................#...###.#.#...#...#...#...#.#.....#...###.......# +###.#.#.#.#.###.#######.#####.#######.#.#####.#.#.#.#.#.#.#################################.#.#.###.#.#.#######.#.#####.#####.#######.####### +#...#...#...###.........#...#.........#.#...#.#...#.#.#.#...............###...#.............#.#.###...#.........#.....#.#...#.....#...#.....# +#.#######################.#.###########.#.#.#.#####.#.#.###############.###.#.#.#############.#.#####################.#.#.#.#####.#.###.###.# +#.#...#.......#.......###.#.............#.#...#.....#.#.........#.....#.#...#.#.#...........#.#.....#...#.......#.....#.#.#.......#.....#...# +#.#.#.#.#####.#.#####.###.###############.#####.#####.#########.#.###.#.#.###.#.#.#########.#.#####.#.#.#.#####.#.#####.#.###############.### +#...#...###...#.....#...#.#...#.........#.#...#.....#.........#...###...#...#.#...#.........#.#.....#.#.#...###...#...#...###.....#...#...### +###########v#######.###.#.#.#.#.#######.#.#.#.#####.#########.#############.#.#####.#########.#.#####.#.###v#######.#.#######.###.#.#.#.##### +#.......###.>...###...#.#...#...#...###...#.#.......#.........#...#...#...#.#.#...#...###...#.#.#...#.#.#.>.>.#...#.#.###...#.#...#.#.#.....# +#.#####.###v###.#####.#.#########.#.#######v#########.#########.#.#.#.#.#.#.#.#.#.###v###.#.#.#.#.#.#.#.#.#v#.#.#.#.#.###.#.#.#.###.#.#####.# +#.....#.....###.#...#.#...#.....#.#.#.....>.>.#...###...........#.#.#...#.#.#...#...>.>...#.#.#.#.#.#.#.#.#.#...#.#.#...#.#.#.#...#.#.#.....# +#####.#########.#.#.#.###.#.###.#.#.#.#####v#.#.#.###############.#.#####.#.#########v#####.#.#.#.#.#.#.#.#.#####.#.###.#.#.#.###.#.#.#.##### +#.....#...#...#...#.#...#...###.#.#.#.###...#...#...#...#.......#.#.....#...#...#...#.#.....#.#...#...#.#.#...###...#...#.#.#.#...#.#.#...### +#.#####.#.#.#.#####.###.#######.#.#.#.###.#########.#.#.#.#####.#.#####.#####.#.#.#.#.#.#####.#########.#.###.#######.###.#.#.#.###.#.###v### +#.......#...#.....#...#.......#...#...#...#.........#.#.#.#...#...#...#...#...#.#.#.#.#.....#.........#...###...#.....#...#.#.#...#.#...>.### +#################.###.#######.#########.###.#########.#.#.#.#.#####.#.###.#.###.#.#.#.#####.#########.#########.#.#####.###.#.###.#.#####v### +#.................###...#...#.#...#.....###.....###...#.#.#.#...###.#.#...#...#...#.#...#...#...#.....#.........#.#...#.###.#...#...#.....### +#.#####################.#.#.#.#.#.#.###########.###.###.#.#.###.###.#.#.#####.#####.###.#.###.#.#.#####.#########.#.#.#.###.###.#####.####### +#...#.................#...#...#.#...#.......###...#...#.#...#...#...#.#.#.....#...#.....#...#.#.#.#...#.........#.#.#.#.###.....#...#.......# +###.#.###############.#########.#####.#####.#####.###.#.#####v###.###.#.#.#####.#.#########.#.#.#.#.#.#########.#.#.#.#.#########.#.#######.# +#...#.#...............###...#...#...#.#.....#...#.#...#...#.>.>...###.#.#.......#.......#...#.#...#.#...........#.#.#.#.#.........#.......#.# +#.###.#.#################.#.#.###.#.#.#.#####.#.#.#.#####.#.#v#######.#.###############.#.###.#####.#############.#.#.#.#.###############.#.# +#.#...#.................#.#.#.....#...#.......#.#.#.###...#.#...#...#...#...#...#.....#.#...#.#.....#.....#...###...#.#.#...............#...# +#.#.###################.#.#.###################.#.#.###.###.###.#.#.#####.#.#.#.#.###.#.###.#.#.#####.###.#.#.#######.#.###############.##### +#.#.#...........#.......#.#...#...#.............#.#.#...#...###...#.....#.#...#...###.#...#...#...#...###...#.......#...#...#...###...#.....# +#.#.#.#########.#.#######.###.#.#.#.#############.#.#.###.#############.#.###########.###.#######.#.###############.#####.#.#.#.###.#.#####.# +#...#.....#...#...#.....#.#...#.#.#.....#...#####...#.#...#...#.........#.#.....#...#.....#.....#.#.#...#...........###...#...#.....#.......# +#########.#.#.#####.###.#.#.###.#.#####.#.#.#########.#.###.#.#.#########.#.###.#.#.#######.###.#.#.#.#.#.#############.##################### +###...###...#...###...#...#...#.#.......#.#.........#...#...#...#...#...#...#...#.#...#...#.#...#...#.#...#.......#...#...#...#...#.........# +###.#.#########.#####.#######.#.#########.#########.#####.#######.#.#.#.#####v###.###.#.#.#.#.#######.#####.#####.#.#.###.#.#.#.#.#.#######.# +#...#...........#.....#.......#...........#.........#...#.......#.#...#.#...>.>...#...#.#.#.#.###...#.#.....#.....#.#...#...#.#.#.#.#.....#.# +#.###############.#####.###################.#########.#.#######.#.#####.#.###v#####.###.#.#.#.###.#.#.#.#####.#####.###.#####.#.#.#.#.###.#.# +#...............#.....#.#...#...#...###.....#...#.....#.......#...#.....#...#.#.....###.#.#.#.###.#.#.#.#...#.......#...#...#...#...#...#...# +###############.#####.#.#.#.#.#.#.#.###v#####.#.#.###########.#####.#######.#.#.#######.#.#.#.###.#.#.#.#.#.#########.###.#.###########.##### +###...#.........#.....#.#.#.#.#.#.#...>.>...#.#.#.........#...#.....#...#...#.#.......#.#...#.....#.#...#.#.......#...#...#.#.....#...#.....# +###.#.#.#########.#####.#.#.#.#.#.#####v###.#.#.#########.#.###.#####.#.#.###.#######.#.###########.#####.#######.#.###.###.#.###.#.#.#####.# +#...#.#.......###.....#.#.#...#...###...#...#.#...#...#...#...#.....#.#.#.#...#.......#.......#.....#...#.....###...#...#...#...#...#.....#.# +#.###.#######v#######.#.#.###########.###.###.###.#.#.#.#####.#####.#.#.#.#.###.#############.#.#####.#.#####v#######.###.#####.#########.#.# +#...#.#...###.>.......#.#.#.........#...#...#...#.#.#.#.#.....#...#.#.#...#...#.#...#...#...#.#.#...#.#...#.>.>.#...#...#.#...#.........#...# +###.#.#.#.###v#########.#.#.#######.###.###.###.#.#.#.#.#.#####.#.#v#.#######.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#v#.#.#.###.#.#.#.#########v##### +#...#...#...#.........#...#...#...#.#...###...#.#.#.#.#.#.#...#.#.>.>.#.......#.#.#...#.#.#...#.#.#.#.#...#.#.#...#...#.#.#.#.#.....#.>.#...# +#.#########.#########.#######.#.#.#.#.#######.#.#.#.#.#.#.#.#.#.###v###.#######.#.#####.#.#####.#.#.#.#.###.#.#######.#.#.#.#.#.###.#.#v#.#.# +#.........#...#.......###.....#.#.#...###...#...#.#.#...#.#.#.#.###...#.......#.#.....#.#.....#.#.#...#.....#...#...#...#.#.#.#...#...#...#.# +#########.###.#.#########.#####.#.#######.#.#####.#.#####.#.#.#.#####.#######.#.#####.#.#####.#.#.#############.#.#.#####.#.#.###.#########.# +#.........#...#.........#.......#...#...#.#.......#.#.....#.#.#.#.....###.....#...#...#.....#.#.#.#...........#...#...#...#.#.#...#.........# +#.#########.###########.###########.#.#.#.#########.#.#####.#.#.#.#######.#######.#.#######.#.#.#.#.#########.#######.#.###.#.#.###.######### +#.........#.....#.......#...........#.#.#.......#...#.#...#.#...#.......#...###...#.......#.#.#...#.....#...#.....#...#.....#.#.###.....#...# +#########.#####.#.#######.###########.#.#######.#.###.#.#.#.###########.###.###.#########.#.#.#########.#.#.#####.#.#########.#.#######.#.#.# +###...###.....#...#...###.............#...#.....#...#.#.#.#.#.........#.###...#.#.........#...#.....###...#.....#.#.#.......#.#.#.......#.#.# +###.#.#######.#####.#.###################.#.#######.#.#.#.#.#.#######.#.#####.#.#.#############.###.###########.#.#.#.#####.#.#.#.#######.#.# +#...#.........###...#...#.......#...#.....#.........#...#...#.......#...#.....#...#...#...#...#.#...#...........#.#...#.....#.#.#.#.......#.# +#.###############.#####.#.#####.#.#.#.#############################.#####.#########.#.#.#.#.#.#.#.###.###########.#####.#####.#.#.#.#######.# +#.#...#...###...#.#.....#.#...#...#...#####.........###...#...#.....#...#...###...#.#.#.#.#.#.#.#...#...........#.......#####...#...#.......# +#.#.#.#.#.###.#.#.#.#####.#.#.#############.#######.###.#.#.#.#.#####.#.###.###.#.#.#.#.#.#.#.#.###.###########.#####################.####### +#...#...#.....#...#.....#...#.............#.......#...#.#.#.#.#.......#...#...#.#.#.#.#.#.#.#.#.#...#...#...###.###...#...#...#.....#.......# +#######################.#################.#######.###.#.#.#.#.###########.###.#.#.#.#.#.#.#.#.#.#.###.#.#.#.###v###.#.#.#.#.#.#.###.#######.# +#.............#...#.....###...............#...#...#...#.#...#.....#.....#.#...#.#.#.#.#.#.#.#.#.#...#.#.#.#.#.>.>.#.#.#.#.#.#.#...#.#...#...# +#.###########.#.#.#.#######.###############.#.#.###.###.#########.#.###.#.#.###.#.#.#.#.#.#.#.#.###.#.#.#.#.#.###.#.#.#.#.#.#.###.#.#.#.#v### +#...........#...#...#.....#...............#.#.#...#...#.........#.#...#...#.#...#.#.#.#.#.#.#.#.#...#.#...#.#.#...#.#.#.#.#.#...#.#...#.>.### +###########.#########.###.###############.#.#.###.###.#########.#.###.#####v#.###.#.#.#.#.#.#.#.#.###.#####.#.#.###.#.#.#.#.###.#.#######v### +#...........#...#...#.#...#...###.........#.#...#...#.#.....#...#.#...#...>.>.#...#.#.#.#.#.#...#...#...#...#.#.....#...#.#...#.#.#.......### +#.###########.#.#.#.#.#.###.#.###.#########.###.###.#.#.###.#.###.#.###.#######.###.#.#.#.#.#######.###.#.###.###########.###.#.#.#.######### +#...#.....#...#...#.#.#...#.#.#...#...#...#...#.###.#.#...#.#...#.#.###.......#...#.#...#.#.#.....#.#...#...#.....#####...#...#.#.#.........# +###.#.###.#.#######.#.###.#.#.#.###.#.#.#.###.#.###.#.###.#.###.#.#v#########.###.#.#####.#.#.###.#.#.#####.#####.#####.###.###.#.#########.# +#...#.#...#.#.......#.#...#.#.#...#.#.#.#.#...#...#.#...#.#.#...#.>.>.#.....#...#.#.#...#...#...#...#.###...#.....#.....#...###.#.#.....###.# +#.###.#.###.#.#######.#.###.#.###v#.#.#.#.#.#####.#.###.#.#.#.#######.#.###.###.#.#.#.#.#######.#####.###.###.#####.#####.#####.#.#.###.###.# +#...#.#...#.#.......#.#.#...#.#.>.>.#.#.#.#...#...#...#.#.#.#.......#.#...#...#.#.#...#.......#.#...#...#...#...#...#...#.#...#...#...#.....# +###.#.###.#.#######.#.#.#.###.#.#####.#.#.###.#.#####.#.#.#.#######.#.###.###.#.#.###########.#.#.#.###.###.###.#.###.#.#.#.#.#######.####### +###.#.#...#.#.......#.#.#.###.#.....#.#.#.#...#...#...#.#.#.#...#...#...#...#.#.#.#...#...#...#.#.#.#...#...#...#...#.#.#...#.#.......#.....# +###.#.#.###.#.#######.#.#.###.#####.#.#.#.#.#####.#.###.#.#.#.#.#.#####.###.#.#.#.#.#.#.#.#.###.#.#.#.###.###.#####.#.#.#####.#.#######.###.# +###...#.....#.........#...###.......#...#...#####...###...#...#...#####.....#...#...#...#...###...#...###.....#####...#.......#.........###.# +###########################################################################################################################################.# + diff --git a/2023/_input/day_24.txt b/2023/_input/day_24.txt new file mode 100644 index 0000000..6fbb9f2 --- /dev/null +++ b/2023/_input/day_24.txt @@ -0,0 +1,301 @@ +260252047346974, 360095837456982, 9086018216578 @ 66, -174, 512 +511477129668052, 548070416165820, 520727565082156 @ -386, -384, -322 +358771388883194, 290970068566246, 208977773545854 @ 88, -82, 254 +126687249998278, 281467449200748, 381838847917690 @ 156, -21, -138 +387555897070204, 265423499409000, 234620593397299 @ -117, 7, 114 +145889837538820, 320469908388792, 158376746448532 @ 115, -74, 173 +285469538594908, 273084414160108, 460747259136580 @ -78, -9, -240 +301609598923332, 172929143989132, 293135433361660 @ 61, 219, -30 +229817261409244, 242103235132548, 256777324376932 @ -30, 30, 36 +382702971099508, 294454989005628, 239623283981980 @ 48, -108, 159 +111969515957356, 220272741325224, 317725858112722 @ 43, 47, -31 +90289069003396, 245258021611553, 259665829177778 @ 51, 20, 29 +366568689132052, 205845920382660, 271912507753744 @ -145, 109, 18 +369483756415645, 215790550878981, 308658168996229 @ -130, 102, -54 +152917073206179, 84582480192213, 55482823209615 @ 158, 280, 350 +157397866670023, 428923425147576, 73579850554771 @ 72, -209, 272 +166074202922500, 411443659961202, 363011578878524 @ 51, -182, -97 +277210830950116, 407131182833676, 340081413006268 @ -139, -141, -51 +145942723469704, 289582433881656, 267126826821304 @ 20, -26, 22 +389134483297595, 147759339251644, 416281585968907 @ -82, 363, -414 +426159794716196, 248693291783596, 361718270324092 @ -110, 98, -408 +387893848712080, 181706705875368, 261036596589922 @ 31, 375, 69 +126426169350884, 187536290962320, 219513137088695 @ 19, 79, 70 +343166181618092, 199633553939308, 231799196307476 @ -76, 135, 98 +235138717311314, 387012721138020, 205434095229918 @ -16, -161, 106 +315625891701607, 165491367071694, 218784106578586 @ -144, 121, 81 +271330638294580, 171541255868436, 268521824575300 @ -135, 92, 20 +424686923963423, 281897041255143, 254210841267860 @ -76, -68, 119 +93688515601738, 242329137681174, 269767489032676 @ 62, 24, 19 +67587776544460, 183357916328832, 111857960290042 @ 283, 127, 261 +331948173571088, 270722982954544, 351687526906556 @ 157, -7, -257 +352470676644748, 332671425949248, 287702919128110 @ 59, -209, -31 +247599705809380, 333127859125566, 260764308332614 @ 35, -108, 36 +454698002076976, 277462093586392, 272732467591632 @ -66, -114, 28 +45122854936960, 325949432759319, 29595337687738 @ 119, -64, 273 +403002662832753, 274769599892843, 289255635828805 @ 134, -36, -90 +429294653822626, 264498741759426, 274546373747347 @ -11, 37, 8 +196825494522172, 505954558137936, 333984007658308 @ 5, -294, -59 +274006998438343, 281081235786738, 291217987123435 @ -6, -23, -14 +26648628553647, 155386233544350, 146761804230778 @ 110, 109, 141 +424339894040782, 371038945638722, 278889968840950 @ 78, -864, -30 +457791511206928, 272358933408118, 280884983012300 @ -105, -39, -97 +357650740120948, 334335608049174, 276478724157094 @ -213, -72, 12 +237477346723428, 257254357551772, 274363189195148 @ -23, 12, 14 +173174548083564, 336615926081064, 415266853851384 @ 113, -104, -196 +433283695168618, 281054067999568, 283465796369330 @ 6, -99, -70 +52236708068029, 100788971188212, 70977698744893 @ 84, 163, 216 +419166001161340, 245510568353508, 242333031846520 @ -51, 125, 180 +235683583291548, 406147528170948, 261629963097260 @ -56, -164, 29 +272588521797874, 321203815691115, 320463362203153 @ -47, -78, -52 +203932032433365, 235048122017063, 276795664732395 @ 88, 50, 10 +141505979676574, 271017889403242, 326616432258434 @ 48, -6, -46 +358609967278201, 341674812676281, 260910661474888 @ 134, -298, 67 +110696685128992, 280353226664823, 265441184192224 @ 199, -20, 27 +194772690222964, 284181138262908, 340959700279324 @ -36, -20, -57 +289355378574733, 277064192718978, 177942372212305 @ 144, -23, 264 +181346847600192, 220241033014807, 322694340555640 @ 23, 56, -45 +334057848707013, 358916197047778, 268201459807710 @ 26, -235, 29 +383833004393356, 229653113084892, 398206940312860 @ -162, 73, -225 +185728625658784, 175687210095414, 189638792764012 @ 159, 157, 159 +183764600310148, 300838892114760, 373798669114558 @ -13, -39, -96 +19354701540608, 200855895654253, 311919614592905 @ 223, 80, -32 +397529491114050, 265344980349075, 282500734592930 @ 89, 22, -35 +150730399919245, 327441705067513, 350689629709098 @ -24, -60, -59 +351830206437526, 281179155071188, 306695621836660 @ -114, -25, -45 +193310183351275, 298778882257743, 343589226835150 @ 106, -50, -95 +263623225505308, 415667029132508, 548386368493280 @ -63, -193, -340 +367545388131973, 483735180604063, 274591231934370 @ -120, -438, 13 +285779995052130, 320031204638093, 200141577685477 @ -127, -60, 96 +379319883891758, 294948043198878, 240066725940480 @ 62, -110, 157 +284747679239167, 369856825930864, 258405302544755 @ -24, -169, 40 +111472168943236, 240994318136455, 222819386069098 @ 51, 26, 69 +384695710924300, 346492382256660, 286110844081396 @ 138, -414, -52 +446707183997664, 402617204624103, 357795692211473 @ -289, -230, -128 +146025596458637, 228412549072948, 281951949040916 @ -20, 35, 7 +124218710583478, 211682826069954, 352093317377104 @ 102, 68, -83 +256912286505080, 242934381017574, 232279023275898 @ 95, 49, 97 +447100025339481, 231647581674146, 250823665971982 @ 50, 573, 357 +189166438230076, 234540091993428, 197639351397020 @ 264, 70, 175 +109499336519287, 191437282582394, 382761289911163 @ 156, 101, -132 +387976394328904, 353502198589738, 550594297576684 @ -201, -135, -417 +439947695940388, 299546815090236, 434476918204696 @ -213, -113, -576 +426826058074393, 222928532958960, 287064685296862 @ 82, 423, -107 +286331927511076, 293433866979432, 243263600000296 @ -69, -38, 58 +282405825830251, 235517448577063, 341269109590007 @ 24, 60, -112 +339201210668319, 263630396706723, 257091289022354 @ -26, 10, 53 +142438328552498, 341611114469074, 362254088220432 @ 32, -84, -83 +199487514274836, 273033963392952, 181280883715612 @ -49, -8, 111 +220003197519889, 257635709574780, 270476406247768 @ -10, 11, 19 +425230590137268, 263105645881268, 277926652722610 @ -37, 39, -12 +349520190740203, 236350724857629, 217274490649315 @ -38, 76, 150 +53805544593126, 188135360166680, 28236478797570 @ 290, 117, 380 +159442932684024, 99056419722600, 377660901494652 @ -20, 166, -89 +437985305187634, 279983675949036, 276882967133116 @ 5, -101, -17 +365245200177382, 232843393505991, 269965133776552 @ 21, 118, 27 +445467048517908, 298922607250084, 312965025875000 @ -133, -217, -275 +293205488617132, 204550829516724, 391364981829892 @ -106, 78, -134 +314143899708583, 255521009857758, 275067473424967 @ -8, 25, 12 +407621929628228, 254270562289088, 255880095928540 @ -157, 38, 63 +445893581436608, 319005578306188, 263909681840922 @ 17, -645, 142 +316276033347061, 263305851291265, 285185139922902 @ -36, 8, -7 +272024047849396, 310418417082302, 294119377911946 @ 195, -111, -39 +439822662137629, 304224150688365, 336611859996022 @ -180, -164, -279 +418137117118108, 193883857541268, 232445808143500 @ -153, 247, 151 +275066320015663, 197436551236773, 254944012947265 @ -26, 108, 44 +172927402070068, 51148482593268, 328931097171292 @ 57, 280, -57 +449270439886924, 274923276513702, 278909614483840 @ 63, -86, -75 +240483227536318, 334892273627198, 221494125016570 @ -39, -87, 81 +319478594525944, 204908531114796, 180274797281512 @ 174, 211, 324 +176005885386880, 271193232554595, 245406211077871 @ -49, -6, 42 +74160415638206, 171041570771294, 307988846139402 @ 61, 93, -19 +142933563830548, 190507398440868, 386584415696500 @ 23, 81, -107 +69067105883278, 475025537710914, 153575920175368 @ 57, -203, 131 +433405095404698, 257826640562802, 353885715276210 @ -123, 61, -415 +316724956668508, 251442386315988, 369631175041732 @ 42, 40, -216 +379863289408878, 418038741114912, 338910022343114 @ 32, -587, -242 +160956147512977, 473129383401726, 130799797515973 @ 14, -231, 174 +380699912839277, 239946459907974, 259622104530955 @ 160, 157, 90 +328555183897063, 261786701109618, 292609561188730 @ 46, 17, -35 +232859881347097, 31811085441715, 379689745903330 @ 6, 332, -135 +404447157366358, 283017743638028, 278832680262080 @ 6, -69, -11 +364517719195208, 418360738054328, 487007529256830 @ -139, -271, -368 +299643058465672, 201594038322693, 93955941607817 @ 159, 190, 526 +257345717958016, 339685066584756, 255111013865680 @ -42, -99, 40 +180057362376514, 52302285112905, 357102074379577 @ 133, 342, -118 +203970691172872, 86819229070221, 367387166479175 @ 111, 298, -140 +426360087742733, 262031142974243, 286630769074435 @ -88, 38, -54 +311177754519902, 372925373687843, 89609635179839 @ -11, -210, 382 +362991742981468, 311560982254932, 252898621062328 @ -63, -107, 66 +296573597236004, 224719551407756, 289423818792364 @ 101, 107, -24 +393524833708948, 239592397653048, 256349284717276 @ -113, 80, 63 +443479078073358, 279242856478603, 261532992579730 @ 29, -118, 165 +249771575290064, 285073499047600, 354918325372724 @ 100, -34, -143 +231286399515078, 242277424621522, 296717574699824 @ 22, 36, -19 +86675892262392, 337725224594088, 313399669385562 @ 181, -95, -38 +189557205874708, 309715658690428, 189905659836980 @ 39, -57, 125 +404824049363635, 304241084345646, 370727931535915 @ -162, -91, -230 +122755855350460, 247817594293476, 199787501956422 @ 231, 31, 134 +257408956285321, 251509201406037, 276428878305615 @ 48, 28, 10 +377835014682076, 375717388723728, 332019284465422 @ 71, -455, -234 +179122138188786, 57976159435157, 247433609876336 @ -19, 222, 43 +131165096554572, 276065005532966, 257546538448634 @ 71, -12, 34 +312028148931800, 305345328575564, 356646394705329 @ -41, -69, -136 +343903915993946, 142324232939944, 389942758043250 @ 104, 429, -380 +381343334046868, 276668042570388, 287729619231960 @ 87, -35, -50 +157837357281456, 424787095231278, 259859067674100 @ 125, -230, 35 +375050689888512, 117476396624848, 307862897770116 @ -71, 405, -77 +269404149399892, 531685013084856, 553956410303728 @ -117, -283, -283 +378587071147541, 229293890906765, 306445035395956 @ 148, 204, -153 +299495706475760, 291653987464988, 305324775916586 @ -11, -45, -44 +296173970890117, 275079251466102, 239444012766553 @ 168, -19, 112 +107603862021516, 248974332954192, 237305527405804 @ 29, 16, 51 +261627365808599, 275030239505757, 241604433473801 @ 56, -14, 74 +418578743455044, 340146611849820, 288955077554180 @ -157, -233, -35 +296888553673609, 295805451518897, 272636516114234 @ 30, -58, 17 +313142681183966, 335495338798711, 430076570935087 @ -67, -114, -246 +228895566001444, 191299375053372, 278980790151952 @ -61, 83, 9 +245610739020050, 275273028843688, 326896207685004 @ 110, -15, -89 +71824981057092, 43920570835212, 204479384139964 @ 241, 319, 114 +434821499622974, 274962934656868, 272882576434594 @ -19, -45, 21 +377400385964533, 188320296393778, 251426859185030 @ -84, 209, 73 +241165275256580, 168129516960140, 33021798279068 @ -29, 129, 331 +141834587229076, 252089152234432, 104413889231828 @ 15, 14, 193 +331949934030148, 174420420655508, 385939064824080 @ -45, 191, -215 +402265676786649, 334257660856933, 294396738531160 @ -130, -190, -45 +411728281632704, 259235705801182, 363781677728718 @ -121, 33, -299 +296455010257918, 297963123001458, 232192319674722 @ -48, -50, 82 +417679850754976, 250669320685028, 454374670482908 @ -192, 45, -449 +28509374129166, 33225677080434, 444886806634038 @ 100, 226, -152 +410139478376752, 296310151491432, 252018037705792 @ 104, -188, 166 +272994257702758, 157222174983558, 153263643213865 @ 17, 193, 226 +322155270337732, 188081478577932, 368590067129980 @ -135, 103, -110 +413347361210877, 277885756530478, 257202436350338 @ 50, -55, 121 +167387271582272, 216956134407396, 340728824064368 @ 149, 79, -91 +265042615018508, 384312065458478, 401259928005385 @ -133, -115, -108 +8525196082785, 318705221525096, 257730489767577 @ 164, -57, 32 +434473347189754, 255463229743171, 303852672491578 @ -159, 62, -123 +406839331301470, 220252255405944, 322853271357772 @ -130, 149, -137 +229999879973204, 185932729404616, 210769868379484 @ 223, 188, 159 +435356311410128, 300785590689108, 278143467186940 @ -136, -167, -9 +160000261860828, 145783697055114, 298749555832226 @ 127, 178, -22 +281299595237732, 193805609044620, 87745265681276 @ 88, 163, 424 +214942250915014, 233729076694908, 269962713190708 @ -50, 35, 19 +375067871279068, 139023805236348, 175860567749035 @ 155, 651, 504 +287626726905742, 551949004075122, 70178398864742 @ -12, -494, 368 +353361942964228, 304003764115788, 372642962428060 @ 139, -139, -377 +224626708552138, 261433702622238, 394032104280460 @ -20, 6, -137 +253192598783251, 139598168852450, 325510380262858 @ -54, 161, -51 +149989568673907, 311719255647106, 328730670034853 @ 24, -51, -46 +412930774946808, 276289688982028, 247122297911380 @ -22, -37, 153 +101085902072264, 295889690107668, 225555111400572 @ 100, -35, 71 +439565997787933, 245300219115653, 306394628548380 @ -204, 92, -113 +164673266157390, 5606789398183, 333052342786080 @ 185, 440, -85 +450677614132400, 249042067555392, 205318058844040 @ -121, 199, 675 +429347285014672, 394459039393692, 318088240118248 @ -120, -617, -204 +104900090362108, 319177113434748, 255219089095810 @ 27, -53, 33 +191859374888596, 220827418401684, 302059358838640 @ -37, 47, -15 +275494854387310, 294088149121466, 239987794041016 @ 54, -52, 81 +196529153002196, 317373560393984, 476126067966699 @ -29, -57, -208 +238614574858332, 250546956874252, 143129625805696 @ 49, 27, 228 +359564904140299, 249794846714622, 356120896991680 @ 78, 69, -285 +322218145613763, 257659380462708, 269441535304340 @ -44, 19, 23 +340050262541317, 281412269205239, 374975512784479 @ -180, -18, -102 +167529805923184, 274679769722514, 315138171652435 @ 71, -11, -40 +338997880192948, 193002534480138, 240731348261620 @ 171, 286, 139 +265443211856980, 146773871884216, 367083338119828 @ 159, 288, -207 +440080960681708, 276167106658131, 313130033672797 @ -133, -42, -228 +296249530975468, 130800635625868, 228969716827760 @ -9, 251, 97 +365911643136904, 264270030969468, 362962654834012 @ 30, 15, -289 +374534251529188, 282408576477168, 239277440283268 @ -173, -25, 71 +454959846305028, 366822557602288, 246712572897280 @ -205, -706, 210 +224583776148124, 544050635118624, 467209538746456 @ -55, -312, -202 +216749136762548, 395451600794968, 84336190867900 @ -41, -148, 231 +429600688814648, 238012010665476, 241305548942504 @ -68, 193, 214 +174903776547418, 248011558280129, 223986634762965 @ 57, 24, 80 +275087057056557, 220907472032932, 387195583149881 @ 20, 83, -188 +306509296095583, 277304042488794, 223007218103449 @ -8, -19, 114 +169998768568425, 203888135864971, 346013299344966 @ 110, 92, -91 +284196913095691, 255167819794982, 292619067409723 @ -6, 21, -18 +337307749623478, 383362695137898, 517704797307928 @ -88, -210, -427 +287427768536280, 238380819726296, 334816249794888 @ -94, 36, -64 +361348630503772, 357929577764676, 320849734330888 @ 65, -319, -154 +435565556996708, 284369939742748, 270497559901500 @ -23, -124, 41 +244536442087168, 293851858201728, 217770924234100 @ 100, -50, 121 +458942400054260, 240651054123356, 286824736239358 @ -181, 323, -132 +24685323460277, 209594130068392, 361765230018103 @ 170, 63, -84 +248348669699828, 175775542456188, 475543260893900 @ -112, 88, -184 +387691982568408, 515568006267247, 372961236446587 @ -233, -294, -102 +274811300590453, 202140926475081, 27798293633833 @ 112, 148, 568 +375641261333236, 212885887718226, 256049622939448 @ 131, 269, 99 +347503995873073, 305383373919375, 290966632024522 @ -88, -74, -19 +201256912879009, 305207655156478, 355642307024689 @ 54, -55, -102 +324754170669430, 276799893521154, 273093070806478 @ -44, -18, 16 +258961224554666, 297171881059276, 325117353506934 @ -80, -37, -46 +449070505758187, 264483230686530, 246839549094586 @ -92, 53, 289 +181293248100852, 221197724585944, 365537280925728 @ 155, 77, -139 +148593244192656, 270148844447628, 266427056912151 @ -17, -5, 22 +436692194782318, 272859781276548, 255305866370770 @ -174, -17, 96 +263338515052890, 356894375105708, 243243754235652 @ 53, -165, 71 +455577527471392, 241905362834440, 317481639208400 @ -102, 378, -580 +370075365522980, 289083186054913, 292539031573265 @ 19, -70, -50 +411659050132428, 257443136659324, 253344237006252 @ 22, 69, 133 +382376913411294, 241392573719362, 274100487737157 @ -151, 53, 14 +371398977583798, 199943205015228, 328599107521360 @ 13, 235, -173 +95132638635994, 280415022478347, 161466437630434 @ 145, -18, 157 +399347534845531, 165021285520902, 239103367538290 @ 28, 513, 185 +425515104298308, 266648391487228, 262944219586580 @ -37, 17, 82 +414097500293340, 279330657854165, 269402843152819 @ 43, -64, 42 +422692690054814, 262272927036196, 283565409045144 @ 98, 63, -71 +363470288588283, 281921445167868, 178197571629035 @ 112, -53, 404 +311287285221820, 239609989151292, 219165860959468 @ -90, 41, 97 +416496137502683, 248362644227943, 266210585648996 @ 92, 160, 71 +251842295966779, 272899870139824, 257786292235853 @ -12, -9, 38 +437521748023833, 268129947037833, 276488829122830 @ 32, 16, -15 +289691518105993, 266456869243491, 285016249687858 @ 212, 6, -19 +296004391588480, 217339674414301, 234647105515165 @ -129, 56, 60 +86986863969982, 41476193140308, 405611175038842 @ 38, 215, -112 +366109821876333, 198501852122183, 295292428183412 @ -58, 180, -41 +453074543670367, 286028691063770, 267181381222372 @ -114, -183, 87 +339336564536197, 441503114313885, 423436201298311 @ -172, -212, -166 +447211513330612, 260354547440952, 291901728330100 @ -97, 86, -155 +294112454126409, 187547424592063, 151112828326508 @ 110, 200, 319 +437114327150624, 300115809385972, 268174434574468 @ 20, -303, 69 +71077865007748, 250908661982152, 153144417138652 @ 147, 18, 159 +201571092293566, 315667182923832, 403952659238746 @ -71, -49, -111 +207485901780540, 258058398572092, 304694407931644 @ -26, 9, -21 +346604146677672, 145318527855940, 464383098341956 @ -119, 207, -309 +446624717332606, 302480574328938, 268358409268258 @ -120, -270, 58 +240183990794544, 248239636700365, 295513897713243 @ -89, 18, -8 +322594376517988, 302444328257858, 336112077985780 @ -45, -67, -105 +433308188765446, 305271495468960, 244428731181064 @ 90, -383, 329 +387037847729296, 181666721206302, 294167436916429 @ 79, 421, -84 +442461534444658, 388942103331777, 533502631991707 @ -283, -202, -416 +291171726300013, 257232749495847, 383699023126399 @ -38, 16, -164 +161218736417716, 277249019038620, 281719175212828 @ -26, -12, 7 +221079659499298, 380751764961848, 338717699623545 @ -51, -129, -58 +276891834590108, 351897860987353, 144715729582180 @ -5, -142, 231 +129549142095477, 248760879006853, 3260806794584 @ 68, 20, 331 +284057822733188, 234042704760588, 265581103368860 @ 43, 67, 31 +282948412739428, 229380012806508, 336235069008860 @ -12, 64, -91 +144462336497566, 311284428310276, 307261076762692 @ 18, -49, -21 +282152605151608, 246707674895148, 299389976473708 @ -8, 35, -29 +248207347898418, 310949709878008, 213330684216555 @ -91, -49, 80 +74129585145465, 271989410371970, 226670258895259 @ 100, -7, 66 +195204344296560, 144916203025495, 175314529168529 @ 223, 246, 212 +445694022102036, 265685041297404, 278474293402588 @ -134, 28, -21 +356124573882414, 328021631981904, 240216543311590 @ -19, -161, 105 +3823511042166, 352820981745532, 335608792939408 @ 166, -93, -51 +213763366117663, 274787710785403, 350609871173045 @ -54, -10, -68 +318496682533488, 307617273517798, 238964066863370 @ -115, -58, 64 +236261913574409, 444532514407650, 164477802160809 @ 98, -323, 214 +377117089960588, 558698655004116, 197724865007476 @ -148, -564, 162 +183038197603048, 76472787650658, 238818213745165 @ -25, 201, 52 +195952250575844, 270148844447628, 317497840385494 @ 83, -5, -51 +133932189974788, 420967245338808, 457056312102620 @ 51, -176, -193 +135279533226373, 332338648692273, 220209403493305 @ 204, -104, 100 +43437060649708, 167146833139836, 248807909465956 @ 117, 103, 41 +381580219540428, 528348381958764, 304224506914416 @ -223, -317, -22 +373242883125355, 312355839528897, 126378714997459 @ -34, -132, 458 +416945996292841, 290887199702151, 271179151339720 @ 126, -176, 35 + diff --git a/2023/_input/day_25.txt b/2023/_input/day_25.txt new file mode 100644 index 0000000..8b69410 --- /dev/null +++ b/2023/_input/day_25.txt @@ -0,0 +1,1173 @@ +ckf: rqc +zpm: ffp +lgt: jbp qgn +zcn: jcz srr bbx +vbt: hgx +cgg: qvk +gnb: rtc qtc nvv cmn pjt +rgk: mzv gjk jdk +vxg: hlc fpd kmr lxs vnj +lds: rdt +knb: nrn qhs +zkv: tqg bgb fkd qmp prl mqc +tmj: fbn cjn +jjz: hcg cjk psp +qtc: mdk +kpn: mgj nms +xbp: ksx ckf bxt qbn rjt nrl +dpz: jlq +rgh: tbh +sqf: fqg mvk hsx bhm +bgz: vfk ltk mrl cxr +mjt: hkm vvc spp +jbg: xzp xkr qmg sch xdp +cml: nsm kfq zlk fpn kjq vqd +srk: dtm +dtd: kqx kxm +mkd: ggt nbj tpq +tnq: jfp tzh tcq vnh +ntd: vcq xmd +gcg: ggl xng vkm lst +jsb: rzv +ctr: jxj nvx mjr qlh +dqt: qvk tbl xff pnv xtm +ftr: dkn vkn pcv +zqf: vlz dpv dpp lkm kdt +zdx: jfs +ctx: mpt cqc +bkg: phb mbg cpl kqd +shr: gvv fxh +lzt: xnq +ltv: shp dfr bvb fpn +psp: qrc +shm: trj +nvh: xcb +fjk: hbm gsn bhk +jjv: qgm qml +qps: vds xrj +vqv: hfj +kvk: nrs jkg dhz +vmr: nld btf +mql: dpz kjr fzg +qcg: flr mmq hvx qqd +cpr: vbk sfd pnz qtc hbg +gbh: gmg lxb sbz +gzx: lrg qxp tls dtt +sdr: qgq +tmv: mln ktd qnz hrg +dgz: csz zcs qqp tjn +gxz: rtc +dsh: kfd +cgt: cdh ckf qgx +skj: ffp qgf czj +dcj: zqd nhg zzc +bnt: jtp qmz +zbb: pfv pjc kdk +mdm: zsn hgx lbq qxh +bcj: zpm smt mjq zcs mlq kbq +rcz: qfp +qgx: tvm zjp mkh xxb +svr: zcc btq qbb +pjs: xnd qnq zjn hjn +bmd: gbr lds +lvj: dxs lzm cmk fmg +xkk: lvd dtm +dgd: nmj +vps: tvr rzv tmp pvb +xjh: dmd +tqx: xbb zfm xnq nrt lzt cpq ggm +vcq: kfh fsh +vnz: cqc vzm rjr +zmp: rgh jbp shm +xkl: zgr hbl qkg php +zjp: rkp mqc zxf +pbz: bgv dmd +tnz: xnh shr kbq +lfq: gxj +bhq: zzv rmc mhs vxx +hdd: pzs +lqf: scn brc pkh nms +mck: tmp pks +rtp: pbz vfz kmp +jgh: tkd nmj tnm lzb +bfq: zzh spp hdv +kcx: slg vrk +knc: tjj +bgb: ckj mcq +qpj: qpg jsb tvm +csh: cbf vrn jhh +llc: gbr mzn cpr trt +gsc: xcm krq tdg bkv +fdq: crl thj +cxt: vph +frf: pkc +zrv: kfk sjl tqs grd srl pjg +kvf: rdt +ttc: fmg fmm +qkg: bbd +vxx: jkn xmd sgk +xfh: nch +czc: smj qcz lxb cxq +mcs: gdk knt lcm qmk +mzv: dpz +gkk: gfg vkm +ltk: trj +dcs: rxv jgz +jcz: nmv +fdx: fjm zhz kdp skh qxr +bgx: mbk ksm pdv +lbx: xtd sth tfx +cmn: mkd +rmc: jlq +zvv: cvl ghm +mng: mdc +dhg: bfq dbs fxh hfc +bzz: czm dpz fzg +htq: nlc rnr nrt rkb +lxp: cxm tdz +gqb: tfm jvr kzc +lmt: vgt qdk +kzq: qgf +kps: npl czm bqd dfn +kvv: fsx +crq: qdm pqg qpg +jnr: pkh qmz jkb +bfg: nvq qkg jml dlk rmt +xgr: xrj tzt hfp tsq +lrg: hbg +qmd: cps zgh rfh phb +mtv: cbd +zqn: ljd vpr rsj +tng: cnd vcl gmj xlz +hfk: vzz ppt frc +rll: ppk +vdc: zrr bvm +rts: ffp +hhq: bqs hch qhd +bqm: mbx ckj vmg +jlc: bqb +qjm: vfl cfq +djr: crk xkr +rrn: zxz +vgr: bbx khf +gtg: tpq +jsn: vph +ftt: nnl jcq +mcq: xxb +vfv: zpx zpm +clq: nhg gbl txz +brg: tsf jxs +dqm: kdp qmg +hlq: fpv cjb lzd mfb rcr +hrg: cpl kvn +jbb: gsz svs +pht: dpp +glq: qnq qgm +mvt: kht +mnd: bjv nhg +xnj: hjj dtd mlq qtl qjm +shp: vfk crc hch +txm: zpc rdt vbk gcs ggl +qfm: nsx skj ftt lgf +nvt: dhz bqf ppk +rqp: txl mhl mzq +mvk: mht sbd +klz: njh rzm +btc: jxq +dbv: trj qxc +vsp: kfg tzf +lpf: nkd qhg vlz +knz: qzp gfx +cbd: hrn +pdh: xkk cxl ngm +fgv: xht lhm xdt rtp +bzx: zvc mvt ngj qgd +tls: mbg bhb +ggt: gbl +lgj: tdz chv fcz qqd +zbd: vmr xvt +fqg: jrt qnh +npl: qxp xfj +mqc: ngz mgd trn +zgh: mvq +kmp: dmr +tcq: xxb +xsb: jjq +hkm: phb +fkc: fsh rdt qxp zfg +lqv: cdz lmp vvq +jgz: nmj +hlk: dbl vpl +fft: jhh jhf kfg kxm +pbs: hjj +bvz: rzd mvt xvc sgk +nms: njd +crk: xmd +mjs: fxs zpz bcj +qsr: qzv vfk sxt jxs +tpd: rkk +tfx: mpt pjg +vgx: rfb crk tzf ldc +dlp: sbk tmj +kst: lrf +mkk: fkt +tkd: rvn vcq ldc pdh +rnt: pph +gkz: lrj vnh mqc bvd +flr: kvf dmv cxq +hsl: xmt tdx cjk scm +llr: xbh cxc hpd pjg +qnf: vrn czm kqx +nhn: jxn kqx mfv zpx +rlv: xtd +svs: jnc xdt nrl btb +qxx: xtd +cxc: nsz hjg +hgx: hjv cpp +mdl: gcs pkc zcs +bvc: fqz snv ldm xpz lcm +qlb: txc rzm +cmm: pbq kkf nnt +sgh: fxh snf ngm +qhd: qvk +kfv: vbt krq +sxt: btc bgg +lhm: vqd ztv pzc kvk +tcx: kfh jlq +ghv: jxj rrr mcs zqg +qpx: lzd gqr lxx hmk +bfb: lmg ghm tjf ksf +fxm: dmd cbd kvl bbm +btq: dbs cmk +cpl: dtd +zql: sbd jkb qnh +dlk: cps dgx +frz: zbg dxs nmv gmg +mtn: ckf nxh ltk gfx sxp qmk +rnz: htm lck lzb ldv +rmt: gqk nqn +crl: fqh thj +dnq: sjl zhc gqb pvb +hzj: gqr cgg mrl +dvs: lqr sth vds +bbk: vsm zxz zfc vmd +qdr: xzp skm tlj rts kbt czv +czj: khl kxm +lcc: pgk pks +dgp: lxp gvv +mcb: bnt xng sbz +kjh: jbn lbq qnz rpf +bxt: btb fml vfz +vkg: lmp rjr pmb +hkn: htc +sxk: rck qjk +bcr: hvk vbt hkd +vdr: kfr +cfk: xfh ssb +tvm: jbk +jhh: xlk hhb +dcp: bgv dhz vdc dgs +zqg: qlh xhk kcx pvd +mlq: kqx xbd +mbk: lxp qxp +sfz: tcq fxf bdl xsh mbx +ckq: llp hkm +hbm: tst cdb +szg: bbk bxt vzm bqm fpd +cns: qzp mpt qzv +mxb: lcj lmg jks rvd +pbg: xmd gjx +qmv: cpp fbn +cxp: pgp sht +thj: kdz +qbn: mcq +zsl: fpn trn sjv rcr dgs +djq: kkj xnh xzr jbd +dhz: phq kvt +gfg: xdp +xps: kcp cgg vnj frc mtx +cxr: trj +xdq: czm fsx +kdm: kbq fzl +tvv: mgj rqp jrr klz +vzv: mrl cmq xrc dfg +qkl: dgg vhd vtg bhk fbj +qgd: gkk tdg +dsp: nxz vmp ksm +tsq: xrj mtl sxp +tff: rtc ghh +ndj: khl vsr +ldv: pjj csm stt zhn +bbz: qjf gch rnt zzv +cff: rck rsj +dzg: rnr qnq vxf gjg +tpv: nhg xdp +vjg: rzv nkd ppt gqb pzc +bqd: dpz jdl btf +khz: bjr fft qhs +zbk: nxz qxp +czv: hmm fbl fnk +cjb: cft +vtk: ckj cft bvm fbj +rtd: pcv +zvh: lgx fvh btb +mjz: cdz +bpl: hmh nbj xkr vpd qjr qct +bkh: dpx lvd kst gjn fjv +jrx: jkc jjz +qlc: zcn lmt ntd hxj +xsf: jbn fdq bjv +jbd: ddt +kfq: jpm vvq +qfl: hbl hjq vnk fcn +jxn: sls tpv cbv +fsx: dgd +hsk: prf htc qtb +lgq: mrt +vql: vpl bsc jbk +kpg: tdf fqz rtd +tzt: shq vhd +mqq: gsz +mnr: rpf brc tvd cpl pjj +qdm: dlf +pft: jcq gqk +vhn: lzm gxz lcj jkb bfq zvc +qrf: mcq gfx qzv tpd +shs: dbd sxt +snf: qkm +cqg: mcs qzv mhn qxx +hpc: qmt bqf +mrg: cdl jsg bgb +nrt: hlc hjn +tnk: rll lzt mlt dqf sqb +xsh: rlv +fmg: lrg +gjv: rxv kfh +vlj: rlb kvl bsx +fzg: ddt cbf +gmj: zmh hdr +cpv: zlj +sxp: rck frj +rgb: lbz tdc shq zgc ftr +dgm: qhd +fbn: nvh +hxj: xsf kdz +mkb: bnt kqd ctz qjf sjg +xbj: mjz zgq tsf lml +rjj: nzj ctz zrh +rxh: qbn rjt qzp +tml: xtq frf lst cvl +jjd: bsd gjg cbd +ggj: lxb fbg njd lvd rlg +kfb: rjd mmq nnl lzm +krq: kzq fxh rjj +nxs: ttc ntd pjr hbg tgr +xht: bsx dbd +nsx: ptb vxd sht +xjz: lrf ctl jbn qbv ngm hhb +kfr: hch +phb: gch +lsn: qnh qtl +dfn: nqn +cpp: lds fdj qkm tbg +nhj: hnf hcb lfq +nbj: zvl +nbm: zzg gjv cgj fsv +dlh: tjj kvt qmt +fhr: djr nnh llv +kdk: xdq btq hjj +nvq: kjs tts +gjf: mhr +ftq: svs cjk cjb +jfd: chm mkk zgr zql +ptq: jkn zvc nzj +hpd: msc xbb pht +drf: fkt kjr +grd: fbj zgc lqq +frt: nvt rlv rrn +brs: dmv jnr pdv kqm +psb: mqq hlc jxq qmp +mcn: zpm mht +bdl: lhx jxj spx +bhk: xsh srl +zxz: kzc ldm +bxj: mdg lhp tbh +jnc: zhb jfp +tsn: kpg lzt bgg tnk +qrc: jcm knt tmq +hvk: mdk lrf +srx: qmg rts dxl mdd +mdk: bbd +jfs: lrj +jkz: xlk lgg jkn mzn fpq +sxg: cfq bmd rlg smt +lcj: dbp +gnn: klr zrb +klk: nqr kcq jvc hqq +gqg: fns dpk gjs cmq +kbs: ghh nzj cbf +bsd: lxc zrr +hxv: tmp zqn pfs mtn +pbq: bhp tbg gbl +vck: kjg fhg mvt gbl dbp bxq +pnc: qkm njh +ntm: lfq knq +pgp: mhs hbg xvc ggt +ntk: tpq +bjr: djr npz +qks: jcm pks shq crc +dhl: sbf cjk +kmc: dqm gxz pls fmg +ldc: cgj +ccc: lph qdk clk jrr +qqh: sbf qhg jkg bbb +hjg: kvr mcq ksr +hcn: jfs xtm crc nlc +dpx: pbs czj dbp +qxh: hbn cxq +zbg: lst zmf frf +xzl: krj dmr vvq jbk +qhs: gsm ghh +ncc: jxq +kfn: gnn bzc cgm cbr sdr +djj: tfx rcr xff +plz: mtx msc bxj +zzh: sht +fjv: jhr gxj +jdl: ssg +ljk: hhq qtm cff cpv pzc +jbp: xsh lzd +xpv: jbb mvn +vxl: qjf kfh dgp vvc +jln: zlj +zpn: qrc fpv dmx dgg kvt +hxn: gcn gjf +tnm: jfd kff znj brq +vgg: pdc bqf gjs cjb +kzg: hcg qjd dvk +qnk: gch pnh skm sgk zbd lrk +bfn: dcs mfv ptq chv ltn +vpf: tgr fpq sbz +xmh: fgk sjv dvk mhr +xvv: tpv dpz xlk +jmz: zxz fhx zkg cnd +xnl: fzx pnc pbs +lmc: ncc kvr nvt +lqj: jcm plz +zkg: zhc qgm jxq lqj +dxc: lcb ndj sgh +qlj: chm vtb rtm dvn +sbz: zdd +xnd: dkn +pks: bvm +bvd: qtb +fbj: vpl +qqd: vsr +kvn: mpf rzm +xtq: tvv nnv tpf +qqb: cxt +tbl: glm +pfs: rhs slg +gzm: xff tzq mkh bdl +zfm: hhf +lml: tsr qjk mjz +tqh: gxc zsl vvf +vgt: fkt kht +kxl: hkn zvh rtp knz +snv: vhd +clv: fzx nvv xbd +zhs: rsj kzg pqg skg mck +kfg: zzg +lgf: pfm pnc lrf +fdd: njh zpc lvd +bld: ckq ptb bjr qtt rlg +ksx: vxh vds jvr +vqq: ffl qvr kkj +qlx: bbd sfd llv +bqf: dbd +rjt: qps +lzx: lhv kvl +jqj: gjg kxc ljd njp frj nrs +vzb: lrg txl +cfc: mng vkh lkk lph +zrh: mbg zfr +jlx: mbz cld +gcd: zvl qnf srr jdl jsq +tjf: pmk bmd mln sfd +nvv: zdd +jbn: chv +cqz: clb cxr zhc fxf mrg +tzn: ftr gnn jrx +xmc: dbr scl hvh +fcg: vcl ttn fns +hcg: ldm xdc tbl +bdr: qnz cmm hjv nld +dvn: qlx cfk kvf zcc +hkd: mjq fxb +ggm: hhs vxm nmh +fqz: pvb +zpz: mvq lcj nmv zsn +mkh: pzs lqj +zmj: qsd qtm hnh zxf +qrp: bvm hqq sdh +msj: hxn dmr fkd +qfv: sth kjf vlz +pcd: mbg gjx fzx +mvn: zmh gfx +dkg: qxx tst sdr qvk +pvd: dbv +sqb: mgd qmt +mkv: mjt hmm knb xsf +pmm: vlz dsh pht scq mlt +nvz: lmc dkl tqh mrt +fsv: lmt zvl mnd +nvb: nnh qqb fmg gbr +cpm: rlv mdg lgq +vxm: jln hpc gzs +lcb: php kbs mhl +rjr: hmk dgm +qmr: klz vph xzr xzp +kbn: brc jhf fxs +hhf: xlz +xmt: jjv kfk +rkp: rlv +tqq: tfm hbm +fdj: qqd kfh +tpf: sbk xrq zcc +tjb: mbk xzr zmf +rhs: jkg lxc +ctz: gvv xcb +spx: kfr tcq +xxb: qzv +cdh: zqf dbr vfk +jbs: dcp trj qlh pnv +fzl: zhn rbp txc llv +ttn: dbm +kcl: ckv hpd qzp xbb +mbz: trs +rtz: mht zqd jks +rpd: rkk vnz rnr +vxf: bhk skz +hnz: ksf brd ddc rbl +krj: jnc vpl tdf +gmh: hjv qbs +hmm: ltt ptq +ndp: fml scl jkc fkd +cgh: nnh mcb btf bbd +nhg: ksf +vcx: ttn gbm +qjr: gjz vbk pkc jhf +dpv: hdh +hvh: rgh zdx ncn +xmd: ksf +gzk: vmd cqc fjk dnh xhk +lnp: dkg hbm ljz rth dmr +bpk: mhs jcz dlp +lbn: ddx qjd mvn mbz +jpm: qtb kcq lzd +lln: vzb vkm sgh cps +mbt: btf zvv npz jbd dnr +slk: cxr qxc xjh qhg +bgv: kfr +mxd: kdm xrq glz ntk +fcz: qqd lph +lpc: mck kcx ttn +xpz: gtt kdt mfb +lbz: ngz xhk +vvq: lxx hnh +gbr: jck nch +cjs: mfb bvc ncc xmt +xqk: cpv cpm rll +dcr: mcq bqb gkz bdl +blt: mdl mdc zcn +mgx: ksx cgt ldm bcp +tlm: bhb lrg xcs smj +xcs: mjq mjl crr +mtl: btc +spp: kxm gjh ksm +lzk: zfr bxq cjn lgg +mhb: dfn kbt vqq hzr qxh rzm snf +rxz: fkd tqq pvd dgm +pnh: vfl fkt rtc +vqb: hdh +srh: lpc vxh tjx vhm fns +pfm: tzf srr +lhx: ljd zjn +jjq: knt +cft: zgc +gdt: tbg sdv xvc jhs +kms: nmv qvr nvv htm +gch: rvd +hzr: fnk dxs +jqr: drf dqm bnf tts mql tgr cvc hvk +dbl: gsn +pjt: tzf dxl gjh +dvh: mtx tvr +ldq: bvg tnq bvd jrk +kff: pft nrn xzr sjg +tdx: tnk vkg vxf +tlj: vkm lvd +kkc: hfj jln mdg qgq +cvs: pfs vqd jch vdc +jhs: zcv fcn vgr +rsj: shs +cqc: kvr +khf: ltn mkk qjm +prf: bsc hhf mrl +fpn: gjf scl +rvn: qgf +xxf: mjr shs zrb +bjj: knc xnd mrl gsz +dtm: nrn +ljx: vrk tzt rpj mrb +xrc: kzl mtx +fzx: kjs vsr +sxm: htp tmj qdk mjs +fxg: hgx hjq +tvr: gsz pzs mfb rrn +mxj: xdq hsx kkf qfp dlk +xhk: gtt +zxf: mtv crc +hnf: dgx +hfc: mkk ccz +znj: bjv xnh dnr +cjx: rlr lzk mcb +cgm: hmk dqs prf +vpd: cfq mql vck +zlk: tfx glm jvc +qvc: cxt kdz czm dsp qtl +vfc: hch jrx bbb vmg +sbk: fsh +rfl: gjv sht xnn hvx +xdh: vzb dbp pfm brq +khr: bbb fhx pnv +sjv: qgq +shh: btb djj xrj hlq qgx +scn: pph ntk +zpv: xhz gmj tst hhs tmp +qtl: nrn +lvn: kdp ssg gqz xnl +cbl: kcp rsm +lgx: tmp kfk jxz +hjn: msc +klr: jkc dqs +rvd: ksf +nnt: cvc vxd jrt cmn +lbh: fdj cpp hrg vbt +qgq: gqr +crr: ltt nnl njd +gdk: dsh jvc mkh +pjr: chm mng cpp qvr ffl +csz: qtt zbg zln +dfl: kfv snf kbn vkh +xxs: hfk gsn lxs +qml: lhp gcn +rcm: rls fxg rgr +jrf: chv znj tbm bjr bzq +ngj: gqz +fnr: cgj crl hkm +mph: kfh gjz ntm khl +jsq: kdp gxz +sjj: pbz kgp mfn +fhf: bgv zqf dbv pnf +rkb: dlf +ktd: vpf ngj rgk +mdc: kht fxb +dlj: shm skz bqm pnf +jhg: cmk mcb ggl +pjc: rts mvk ngr +gjk: dcs nmj jsq +xzr: qvr +sjb: kjf rkb +vtx: ztv rlb xjh trs vqd +sls: fxs txc zgr +jfp: rcr rkp +mfv: xbd fbg +rth: kfk qnq kmf +pnf: mtx +zhz: mhs mkd dmv ssb +dgx: ctl +rxv: tbv jrt +vhm: mhr rqc +kxc: vrk frj mgd +tzq: prl rzx kcq +dnr: cgj +tdf: mdg qxc vnj btc +cdb: jcm jbk +dkh: frc bkq ngz +jkf: qsm hpc cft vvf +cts: hjj tjb fjv mzq fdq +qjd: qhd +cch: xtd jrl tdx mrb +xgm: vsp xrq zzh mln kfv npl qtt +gxg: rmt jsq ssb hzr +ltt: zvc cjn +mgj: fsh ksm +kvl: jlc hqq +zfv: vph ngr cxp ntk +fns: vnh vfz +nxj: fpq txl mdk gjz +hfp: kdt slg cld +fnk: btf bhp +txz: rmc cjn dmv qcz fnr +bxq: thj tvd +kbp: lgt qmt vhd dpv +nlc: xjh vvf +qlm: nnl hmz stt mpf jbg +zhb: mck nvt +nnl: dtm +vdm: bkq bsx xpv vhm +zcv: gxj cfq qxr bxq rjd cxt +ppt: pvb +lzv: bsc bsx rpd cdb +zzg: llv +ckj: jxs dnh +dbs: gtg czm +mfn: djc fhx ssn +pkd: dvs bjj jvr jrl +rpf: pfp gfg fxg vgt +rrx: kgj kvv crk zbk +tts: xnn rmc kjp +dqg: qmv skh kzq zbk zfg +hsf: bpk hmz dpj ttc +xdc: rsm +qtt: vrn kvv +bzq: hjq nzj +rzd: vrv qtc +tvk: cxq jcq rgr rjj vck +trt: bgx clq pnc nhn +ztv: dlh +xrj: hrn +jrk: lcc gcn mpp +hmh: rcz +xbb: mkc +dkv: sqb knc qzp vqb +mlt: tjj +fbl: bkv ctl +fhs: dhl qtm dgs +ccz: xcb nld tcx +qmz: qdk +bvg: qtb dpv srl +ddz: cjx fsx blt nhj +skm: fcz nnh flr +hmk: prf +tbm: fbg kpn jhf +vmp: rnt gqk ghm +pdc: mbz rkp zgq +kmq: xzl gdk dvh lmp +smh: rbp ptq zqd npz +tqg: dnh sxk +jhr: gtg +kmr: vkn cld +cbv: qmg fmm vrn +tqk: jck mnd zmf fbl +gmg: lgg +fpd: bvd jsb +kcp: knt rrr +pnz: pgc fcz +glz: cjk lxc +nxm: pgk mtx hnh +mhr: rzv +cps: gjh +qts: jck ngj hkm +kgj: kbn xjz zrh +pdv: tff rjd +jch: klr zkg xnd bsd +rfh: ffp ghh dxl +qzn: dbd vqv nmg +nrs: mkc vzm +dxl: tbv +cld: jxz +ncm: pgk jvc jfs +jvr: xmm xdt +mmv: vvc tpf kst jhr gjx jkn +vbk: qbs lds +plt: dlf gqg snp fhs +gtt: ncc +lqr: zgc +fjm: hvj bqd +hsx: bkv sgk +ljz: lmp dfr mpp +rrp: ngp cxs sxt +jdk: bfq qdk +qqp: tzf sch fhr kvn +zjn: lrj cdz +fxf: tsf fvh pcv lgq +rzx: cns rsm nsz +gkx: rvd lsp sbz rts zbb +rls: jnr kms ndj +mbx: bqb +gfx: dkn svv +xqg: ttq dbm lqv xgr +cxs: dpp +cbb: hsk pfz kzl pmb +hzk: vkh vnk qmz nqn +gsd: ctx bcp qrp kfn +njd: qbs +hpm: kdt gcn gzs sqb lqr rxh pkd +fhg: jsn sgh zbd +cqq: mbg pjc ngm rgr +phs: rbl lsn nxz hvx +nsz: cxs glm +skg: zhc vcx xmt +sdv: vtb xsf hxj +nqn: jsn +rlg: csm +ddx: xdc nsm qff qgn +ztm: rbp kfh jrt ckq zpm +ntn: hfm lzx bfv zgb +bbx: fbg lmg +qbv: brc nrn php +kcq: trs lkm +qmg: fxh ffl +xbh: gzs sjb +gjs: ppk qvk +lcz: lrj mfn dgm fhx +hjv: xlk +zzv: zfx tbv +zqs: gxp hcn dpk cbl dvf mlt kvr +qrg: xhz lgt +kjp: fkt +npq: rhs bsc njp +qff: hkn ksr dmd +hrs: lgq tfm qbn mck lxs +zgb: ksr sjj fhx +qxr: ssg vxd +qjf: ntm +zfc: vlj lzx phq +kjs: hnf ffp +npz: mvq +tjx: qgm hnc zfm +hbl: kjr zzh sgh +vph: nmj +vtg: dkg rkp rck +dgg: cgg fhx +ssn: jjq +ghm: mjl +kgc: vmc dgd xvv mvq fkt +kvt: vnh rlb +hvg: qsd hfj hdd +mjr: dvf dbl jlx +hfm: tqs pcv +vpg: dqs rsm hdh dgs +ptl: qff kxc lsr xmc +nch: gjh +thv: xvt vfl gcs spp +zrr: xtm +djc: kzc kfd +nqr: jxq +knq: fqh +hrn: qsd +xxt: zdd gqz zhn +vpr: srl kjq vqb +kbq: gfg dgd +tjn: kqm hdv nvv +zhc: mtv +xsp: pmb bdn pvd jrk +bhv: bfv rjt crq +jlk: zhb trj dkg +mpp: rrr +tbh: lhp +cpq: bkq rck bqf +kmf: tqg hrn vzz tpd +srr: dnr khl +xhz: pht kfd jlc +ddt: pkh +bnf: lfq +hvj: vfv mjq ddt +qtx: knb lbq xfh dtm +htk: fjp lrj khb psp bhv +njp: ppt tjj +kkf: pls vrv +ffl: llp +xmm: mtl gfx +mmq: lxp hbn lmt +nvx: sdr ttq kzc +lhv: glq djc mgd +xnn: hdv +pzs: qlh +qcz: kjp bfq +jcq: fqh rvn +nrl: bqs shq +dmx: vcl tfm nmd +thh: vqb brg thk pmb fbj dkn +zrb: mpp lqq +dvb: mjz phq lqg qps +lkk: hdv +nmd: qgn qsd lpf +bkm: clb pnv mkc +vkq: zlj zdx zqg hlk +mdd: jgz tpq +dxk: qgf srk kjt skh +kgp: bbb +cdl: bpz mfb kmr +jjh: xrc jbb hvg pmb xgj +pkh: cbf +dkl: hjn jxj dbm kjq +mhs: jck czm +tzh: bkq nqr bgg +lbq: pmk +cbj: rkc nqr bgg spx +khb: zjn cld +pmg: hfc bkv fjm gbl qmz xbd +vcl: cxs +tsv: tlj jhr gqk +smj: kst rtm +fgh: gjv vfl xnh +bcp: nnp gsn fns +tdg: kfg +kbt: gbl knq +fjp: xsb vqv fvh +nzt: kjr lbq jdl cvl +chr: fhf dfg jrl vzz ckv +txl: flr +bpz: trs vzm +jml: xfj zzg stt lkk +lkm: glm ngz +dbx: nvh rcm pjj +vxh: pzc mrb +sjl: tpd bqm jkg hfk qhd knc +bjv: fcn +nnh: zfx gxj gtg +prl: cxc mrb +nlp: kmp gqr jcm lml +gjg: rtd +hnc: rtd dkh +fmm: xng qmv +lqg: qxx bqs clb +dhc: mbz jlk psp +cvc: dxc zgh +bzc: mhn zrr kfq +scm: glz rkc ksr +lpv: jdk fsx csh lck mzq +brd: zcc bcr qqb lst clb +llp: fxb fmn +zxh: hzr zfx rts rvd +nsm: jbk +jxc: dhc sjv gnn xnq mrb +jmj: bsx cff xfr +rqs: nbj tts vgk vkh pjj +zgr: rvn lkk +qck: xxf sjb tsr xqk cmq +lsr: vpl kvr tjx jlx +gcs: khl +snp: dvk dpv bvm +zdn: qfv kzl snv gqg +bxv: rzm nsx cxm gbh +hcb: qxr kfv fmn +lmp: xdt +pfz: qzp clb tmq +svf: hdr sdh dvf sjb +jrl: rnr bqs +zhn: rcz +pjq: rpd ftq xmm +rtm: htp +xtn: zdd qlb zzc xlk rtz +zzc: cxp scn +zcq: kzv tqq xff zkg ksr +fqh: vxd +smt: pls nch +kkq: rll dqf lbz qml +bdn: vnj hqq +clk: hbn +lth: qhs smh clv psl +lck: qkm ccz xfh lzm +zgx: kzc vqv lxs hnc hdd +zfg: ggt jlq +sdh: ltk +xth: bqb dbl jln dsh +fzz: glq jjv qff +bzn: jjv tlg tzn qjd jxj +xgj: mtr xps rrr +vmc: chm gqk +qnz: lqz tgr jgz +dpj: stb drf zdd +nmv: ssb +lgg: zsn vrv +mhn: zsl rsj +vmg: qtb +gbz: hmh pbs csm fbv +jxj: vql xsb +rpm: tpg qdm mcq cnd +bkv: qfp +kjg: hmz vvc qdk +cvl: kjr nmj zpc xvt +pfp: tvd nvh khf +jrr: kfh fsh +vkn: vzz xlz dqf +zcs: sfd ctl +vds: vfz +hqv: qrg fgv zpn jsg kfq +qkx: lzb dgp jhg zgh +hzs: mqq vql pqg lrj +mln: zpx +qmm: bxj sth lqg tbh +nmg: rck fqz tmq +stl: xcm fpq sbk +ddc: qlb sgh kjp +bqg: mqc dhc ssn qrg +cmk: hjq xnn +llv: dmv +xfj: xvc tls +rlr: hkd fgh mzq +pqx: bjj npq nkd tvm +clb: xrc +dpp: lxx +rkk: mtv +hkz: tlm kqd tdg zfr +kdz: lxb fkt +zvl: kqd +brq: sht pft bbz +dtz: nsm pgk lbx nmg msj +sbd: pbg +hvq: tcx tnz dbx nnv hnf fxs +pqk: zbj spx hkn knz qhg +lqq: qsm +rdt: gjz +zmh: tbl slg +xfr: qsm rkk +rnr: vmg +qmt: dbd jxs +ckv: dpk nxh +xcm: pkh zfx fzg +pgc: hjj gjx jtp +shq: tst +gvj: vgk gsm ghh +fmn: bkv ltn sgk +vcg: pjq xsb scq nxm zdx jvr +fxb: ltn +nxz: jtp +jks: ltt qts zgh +qmp: ljd jlc xdc hdd +bhm: kvf vxx gmh +zbj: qdm rlv khb kmp hlk +dfg: jjq +qnq: pvb ckj +scq: vdr pqg mrt +htc: pzs +sbf: hdr bpz +tlg: jxz svv lhm plt zmp +dfr: zfm tqs jmj +qpp: zbd hjv mhb cpl hvx dsp dlp +mjl: tbg vsp +ptb: fcz htm +vgk: htm +dtt: cxm xkk +sch: jck clk +kjt: xng hrg vmc pls +pcp: skz qvk vcx vdc snv +hhs: zrb shq +bhp: nnh tff +nnp: glz nmh qpj cpv +txd: npl ggl qnh +frc: mdg +xhh: fgk ctx jbk frt jsg +pjg: xtm +thk: tbh qgn xxs +tvq: zgc njp vsm lhp +lrk: pcd xxt bbd stb +ppk: msc +tft: gzk jsg kzl jcm +mtr: mfb gbm sxk +scl: shs zxf +grx: njh rbp zsn zql frf +mhl: qlb vph llv ghh +nxh: rlb knc +tdc: jcm rsm cnd +qct: xnn jbd zpx hmz +pnd: vgk qgd jsn xkr mcn dcj +psl: gsm txd mzv +kzv: sth rkb fzz +hdr: qjk +rfb: zpc xvt nvq +djn: jdl mzv tkd bnf svr tdz ftt mcn +tzf: skh +rbl: dgx hbn +mzq: gmg +qhj: htc hfj vdr fcg svv dqs frj lhx +hfj: jjq +vrq: pnc sjg gtg gqz +vvf: xbb cmq qjk +jnt: rrp qsm pjq vrk +sdd: gkk bnf dtt qkg +kxr: tvd clk gmh bzz jcz +bbm: glq zgx cbd jsb +vtb: cmk vfv +rql: mrt hnh rrr mtl +vmj: cbl hdh lqr ncm nkd +kqm: kkj fkt +gxp: hxn hfk tpd +gxc: ztv jfp lcc +zlj: xlz pnf +cxl: fqg ldc fcz +brz: kdm jck dfn cmn +fbv: sbd lrg zvv pdv pnz shr +mzn: nld ngr +gvv: kht +jkc: ncn +hjx: rcz bxq fft +vmd: qzp qpg +pph: mdd djr +fml: bdn tmq +vkm: xzp vkh +lqz: rtm lrf stl +qmk: pfz cbj sdh +vdt: zdx qpg sxt kgp +rkc: gbm tsf +dvk: shm +rqc: mkc dqf +gvz: kkj tsv bzq tjb cdt +gjn: vxx xrq vgr +trn: lqq ttn +zgq: xnq ncn +sjg: rjd +ttq: hlc ncn +cdt: lsn mdm vsr +vsm: hfp dhl hfm +ngp: dkh mtl dcp +mpf: tdz cxm +gnx: rhs hzj qxc ttq +jxd: vdr lxc bbz xht +fgk: sbf kfq +dxs: srk pkc +pmk: cgj stt +lsp: fdd ssg rmt +zln: txc kzq php knq +zqd: qlb jkb csm pjj +tsr: qnq qsd +pfv: cfk fbn gtg kvv +bfv: xpv zrb +zxm: mbx rll gzs dpk +qjk: dlf +qtm: brg +stb: tbv mng fcn +lzb: gvj nms kpn +rgr: lph hjx +bhb: xdp rnt +nmh: zmh kgp fvh +lcm: fpv ssn dgm kjq +dvf: kfd gtt +cnc: gbm dfg cdz xbh zmh hhf +vnk: gbr rzd kdk +zfr: gsm +rpj: jjd tnq skz +tpg: tqs svv vkg trj xfr +hhb: qfp qbs +xhx: vrv jtp bxv rbp +nnv: hmh phb rfh fbn +mht: btf +fps: mqq jxz pht tjx +bvb: kbp qzn bxt +qbb: khz lmg vmr qqb srk pkh +htp: pbg qxh +dbm: pvb +phd: bkm dvh hxn qck +fpv: dpk +zmf: zfg +kjf: pmb gjf +cbr: rgh hmk zhb +kjq: dnh +qgh: qfl ngr xcb lfq +fnp: vfk khr phq lxx +dbr: rrn mpt + |
