Compare commits
6 Commits
f2f250eabd
...
7e6a543790
Author | SHA1 | Date |
---|---|---|
|
7e6a543790 | |
|
7dbc09d3f8 | |
|
02abc9d0e8 | |
|
cebdd72171 | |
|
e05226f6aa | |
|
3253a8f963 |
|
@ -0,0 +1,172 @@
|
||||||
|
package day4
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Run() int {
|
||||||
|
fmt.Println("in day 4")
|
||||||
|
cards := ReadAllCards()
|
||||||
|
fmt.Printf("> got cards %+v\n", cards)
|
||||||
|
// result := 0
|
||||||
|
|
||||||
|
// for _, card := range cards {
|
||||||
|
// // fmt.Printf("> checking card %+v with points %d", card, card.GetPoints())
|
||||||
|
// result += card.GetPoints()
|
||||||
|
// }
|
||||||
|
|
||||||
|
result := ActuallWinCounting(cards)
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
// starting from card #1 count how many winning points it has
|
||||||
|
// then add copies to map of 'amount of cards i have'
|
||||||
|
// multiplied to amount of current card i have, ok i guess
|
||||||
|
func ActuallWinCounting(cards []Card) int {
|
||||||
|
cardAmounts := make(map[int]int)
|
||||||
|
// i had off-by-one error, with card 204 not being updated from 196
|
||||||
|
maxCard := len(cards)
|
||||||
|
fmt.Printf("> counting winning, total cards are %d\ncards are %+v\n\n", maxCard, cards)
|
||||||
|
for _, card := range cards {
|
||||||
|
fmt.Printf("> checking card %d\n", card.Title)
|
||||||
|
winningNums := card.GetWinNums()
|
||||||
|
curCardAmount, found := cardAmounts[card.Title]
|
||||||
|
if !found {
|
||||||
|
curCardAmount = 1
|
||||||
|
cardAmounts[card.Title] = curCardAmount
|
||||||
|
}
|
||||||
|
fmt.Printf(">> from curCard %d winning points are %d. And it's amount is %d\n", card.Title, winningNums, curCardAmount)
|
||||||
|
for i := 1; i <= winningNums; i++ {
|
||||||
|
childCardNum := card.Title + i
|
||||||
|
if childCardNum > maxCard {
|
||||||
|
fmt.Printf(">>>> should skip increasing child card %d from curCard %d\n", childCardNum, card.Title)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
curAmount, found := cardAmounts[childCardNum]
|
||||||
|
if !found {
|
||||||
|
cardAmounts[childCardNum] = 1 + curCardAmount
|
||||||
|
} else {
|
||||||
|
cardAmounts[childCardNum] += curCardAmount
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf(">> increasing child card %d from %d to %d by curCard %d\n", childCardNum, curAmount, cardAmounts[childCardNum], card.Title)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var result int = 0
|
||||||
|
for _, amount := range cardAmounts {
|
||||||
|
result += amount
|
||||||
|
}
|
||||||
|
fmt.Printf("> got card amounts: %+v\n", cardAmounts)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
type Card struct {
|
||||||
|
Title int
|
||||||
|
WinningNums []int
|
||||||
|
OwnNums []int
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadAllCards() []Card {
|
||||||
|
filename := "day4/input"
|
||||||
|
bytes, err := os.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("can't read file %s", filename))
|
||||||
|
}
|
||||||
|
text := string(bytes)
|
||||||
|
lines := strings.Split(text, "\n")
|
||||||
|
result := make([]Card, 0, len(lines))
|
||||||
|
|
||||||
|
for _, line := range lines {
|
||||||
|
if line == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
result = append(result, ReadCard(line))
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
// read line like 'Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53'
|
||||||
|
func ReadCard(line string) Card {
|
||||||
|
fmt.Printf(">> reading line %s\n", line)
|
||||||
|
result := Card{}
|
||||||
|
extractingTitle := strings.Split(line, ":")
|
||||||
|
title := extractingTitle[0]
|
||||||
|
numberPart := extractingTitle[1]
|
||||||
|
|
||||||
|
titleNumStr := strings.Fields(title)[1]
|
||||||
|
titleNum, err := strconv.Atoi(titleNumStr)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("error extracting card title: %s, %s", line, titleNumStr))
|
||||||
|
}
|
||||||
|
result.Title = titleNum
|
||||||
|
|
||||||
|
extractingNumbers := strings.Split(numberPart, "|")
|
||||||
|
for _, winningNumStr := range strings.Split( extractingNumbers[0], " " ) {
|
||||||
|
winningNumStr = strings.TrimSpace(winningNumStr)
|
||||||
|
if winningNumStr == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
winningNum, err := strconv.Atoi(winningNumStr)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("error extracting winning card num: %s from '%s'", line, winningNumStr))
|
||||||
|
}
|
||||||
|
result.WinningNums = append(result.WinningNums, winningNum)
|
||||||
|
}
|
||||||
|
for _, ownNumStr := range strings.Split( extractingNumbers[1], " " ) {
|
||||||
|
ownNumStr = strings.TrimSpace(ownNumStr)
|
||||||
|
if ownNumStr == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ownNum, err := strconv.Atoi(ownNumStr)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("error extracting own card num: %s, %s", line, ownNumStr))
|
||||||
|
}
|
||||||
|
result.OwnNums = append(result.OwnNums, ownNum)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf(">>> returning %+v\n", result)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Card)GetWinNums() int {
|
||||||
|
winningSet := make(map[int]any)
|
||||||
|
for _, winNum := range c.WinningNums {
|
||||||
|
winningSet[winNum] = struct{}{}
|
||||||
|
}
|
||||||
|
|
||||||
|
result := 0
|
||||||
|
for _, ownNum := range c.OwnNums {
|
||||||
|
_, isWinning := winningSet[ownNum]
|
||||||
|
if isWinning {
|
||||||
|
result += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Card)GetPoints() int {
|
||||||
|
winningSet := make(map[int]any)
|
||||||
|
for _, winNum := range c.WinningNums {
|
||||||
|
winningSet[winNum] = struct{}{}
|
||||||
|
}
|
||||||
|
|
||||||
|
result := 0
|
||||||
|
hasMatch := false
|
||||||
|
for _, ownNum := range c.OwnNums {
|
||||||
|
_, isWinning := winningSet[ownNum]
|
||||||
|
if isWinning {
|
||||||
|
if !hasMatch {
|
||||||
|
result = 1
|
||||||
|
hasMatch = true
|
||||||
|
} else {
|
||||||
|
result *= 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
|
||||||
|
Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
|
||||||
|
Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
|
||||||
|
Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
|
||||||
|
Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
|
||||||
|
Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
|
|
@ -0,0 +1,204 @@
|
||||||
|
Card 1: 5 27 94 20 50 7 98 41 67 34 | 34 9 20 90 7 77 44 71 27 12 98 1 79 96 24 51 25 84 67 41 5 13 78 31 26
|
||||||
|
Card 2: 52 14 37 45 82 39 73 67 72 90 | 72 78 37 25 39 68 23 45 73 90 86 2 85 57 80 62 22 26 92 67 82 95 66 14 52
|
||||||
|
Card 3: 33 86 80 53 45 32 25 29 84 89 | 89 53 74 49 73 30 25 82 84 44 59 86 32 54 96 41 26 80 68 29 45 33 23 99 17
|
||||||
|
Card 4: 64 25 5 1 46 75 45 55 21 7 | 93 62 21 60 46 44 96 88 12 63 85 91 14 55 68 67 16 74 45 41 75 70 25 36 78
|
||||||
|
Card 5: 10 72 81 60 97 56 90 25 76 82 | 19 8 57 3 86 72 84 76 98 34 56 10 25 70 90 40 65 44 60 81 54 93 97 17 82
|
||||||
|
Card 6: 94 58 92 25 7 19 52 82 85 64 | 52 22 82 25 3 92 83 86 35 7 95 58 93 19 48 64 57 43 28 45 94 8 63 79 85
|
||||||
|
Card 7: 3 82 59 79 99 28 96 75 68 74 | 27 49 68 75 89 88 61 74 47 62 82 59 46 26 65 79 96 28 80 29 3 33 35 31 99
|
||||||
|
Card 8: 87 46 34 69 59 44 35 93 11 25 | 72 34 43 86 19 30 9 55 64 81 37 29 7 1 63 68 90 40 45 89 36 98 99 96 11
|
||||||
|
Card 9: 42 99 98 17 88 78 27 10 71 1 | 81 63 4 15 36 48 71 54 78 95 99 1 27 37 10 39 2 62 35 66 33 77 16 29 26
|
||||||
|
Card 10: 60 55 21 8 12 78 11 25 76 56 | 67 4 21 26 55 7 16 6 17 41 44 76 61 15 8 80 88 42 89 57 53 59 13 10 63
|
||||||
|
Card 11: 93 41 81 32 89 5 67 87 28 54 | 69 75 26 86 77 39 47 71 85 57 31 40 22 33 45 49 1 60 25 56 83 11 52 82 59
|
||||||
|
Card 12: 28 85 16 9 21 12 62 20 90 98 | 28 10 36 80 33 12 35 15 90 48 50 49 5 14 11 19 59 99 94 52 84 21 85 20 69
|
||||||
|
Card 13: 21 60 32 18 44 62 63 2 38 78 | 99 95 9 70 46 25 55 86 3 67 89 12 58 81 29 80 75 17 38 49 69 77 51 60 74
|
||||||
|
Card 14: 58 41 11 80 75 40 3 71 35 59 | 46 1 30 56 81 59 85 45 66 31 64 58 65 75 80 62 48 67 4 52 68 24 28 33 5
|
||||||
|
Card 15: 92 32 53 69 42 39 14 86 60 1 | 60 75 45 84 66 72 64 27 5 59 99 4 91 30 28 62 31 44 11 46 23 57 43 63 71
|
||||||
|
Card 16: 72 9 84 64 5 39 19 52 98 22 | 53 68 16 54 87 99 4 96 93 88 10 3 37 74 20 49 77 63 95 11 69 56 36 75 23
|
||||||
|
Card 17: 50 37 64 41 39 4 58 75 24 40 | 16 84 48 69 8 78 33 2 79 19 47 43 44 67 56 89 91 86 20 10 21 23 59 14 6
|
||||||
|
Card 18: 52 92 27 42 83 17 53 84 15 70 | 2 19 64 75 65 80 71 74 66 90 78 24 94 28 48 46 21 32 51 35 95 82 37 81 67
|
||||||
|
Card 19: 97 10 20 67 77 79 55 58 34 12 | 27 47 89 25 75 46 58 11 48 41 42 45 37 18 88 6 97 95 66 32 12 67 34 64 53
|
||||||
|
Card 20: 2 52 6 56 53 23 16 82 17 41 | 8 81 31 23 36 28 80 9 72 42 86 27 49 24 56 53 41 75 2 16 55 17 35 13 63
|
||||||
|
Card 21: 79 38 97 58 91 51 33 15 47 37 | 7 22 39 71 75 60 30 19 11 5 20 81 42 13 63 49 70 17 61 96 43 80 98 40 41
|
||||||
|
Card 22: 81 56 17 83 59 96 40 4 39 78 | 32 52 43 87 85 36 33 81 55 69 31 57 67 3 8 1 38 40 35 79 22 75 26 51 53
|
||||||
|
Card 23: 2 99 96 90 58 27 83 97 75 23 | 90 79 75 77 72 13 7 23 74 59 97 88 29 22 67 99 51 58 27 96 38 2 60 83 11
|
||||||
|
Card 24: 15 56 61 39 34 31 51 58 14 90 | 83 50 57 90 68 42 58 34 38 75 85 15 51 56 73 72 39 84 65 31 46 60 47 16 92
|
||||||
|
Card 25: 13 56 14 57 55 76 24 11 87 96 | 89 57 75 43 12 52 14 5 78 79 27 40 87 76 86 83 22 24 72 96 88 11 45 7 55
|
||||||
|
Card 26: 46 68 86 42 12 59 53 69 51 39 | 5 79 53 80 96 24 43 3 94 10 1 48 89 18 91 50 36 69 7 12 65 86 25 98 56
|
||||||
|
Card 27: 49 99 63 73 83 29 51 16 75 53 | 66 1 44 31 56 49 50 97 32 99 16 59 94 53 71 23 45 47 98 65 78 80 73 34 95
|
||||||
|
Card 28: 37 6 63 95 46 99 47 71 10 21 | 47 29 84 43 2 38 48 90 20 14 70 8 31 37 3 94 49 73 18 54 25 36 33 59 80
|
||||||
|
Card 29: 45 2 93 70 3 94 76 88 50 9 | 94 26 47 97 58 85 79 18 4 7 12 31 90 23 35 6 17 24 20 15 86 10 37 46 9
|
||||||
|
Card 30: 73 20 65 67 75 78 43 82 55 21 | 8 71 70 66 32 49 19 47 83 16 91 20 57 95 4 2 61 84 68 17 31 52 6 60 43
|
||||||
|
Card 31: 98 67 59 51 90 42 3 83 78 17 | 64 93 26 18 23 31 52 66 15 63 10 2 37 22 88 41 40 54 57 60 92 53 75 67 71
|
||||||
|
Card 32: 40 23 35 69 73 77 32 74 43 42 | 3 46 16 59 95 80 21 26 36 15 71 14 91 11 85 75 81 17 88 60 65 66 18 98 19
|
||||||
|
Card 33: 57 34 20 23 11 59 82 47 26 42 | 2 6 50 1 15 28 27 37 25 13 7 31 52 46 53 65 45 16 61 86 69 94 99 71 62
|
||||||
|
Card 34: 95 66 98 53 25 88 84 61 68 17 | 17 25 68 60 21 43 88 86 87 53 12 16 95 46 66 98 72 4 23 71 61 5 28 90 84
|
||||||
|
Card 35: 55 48 52 30 8 95 57 71 10 37 | 40 81 50 37 70 8 72 96 52 77 19 57 55 67 95 26 68 71 2 1 30 44 10 62 14
|
||||||
|
Card 36: 59 91 77 81 22 21 58 88 33 95 | 62 91 78 98 57 59 6 77 20 24 11 63 81 79 22 85 21 26 33 88 99 72 95 58 93
|
||||||
|
Card 37: 70 93 83 97 84 15 34 9 59 3 | 83 60 93 51 67 22 70 97 66 71 64 76 84 55 34 33 7 36 9 37 79 15 59 56 3
|
||||||
|
Card 38: 86 52 85 38 35 22 55 70 13 27 | 97 52 44 38 39 17 85 70 82 36 40 13 28 9 62 56 73 86 29 11 27 80 48 81 92
|
||||||
|
Card 39: 22 58 91 20 78 3 28 54 70 35 | 72 24 39 48 91 19 33 14 10 42 3 28 11 22 58 50 49 78 40 45 83 55 20 7 98
|
||||||
|
Card 40: 22 95 92 62 26 43 63 48 50 53 | 96 50 89 37 23 54 40 76 78 60 49 7 15 18 98 36 26 11 35 93 43 66 75 94 84
|
||||||
|
Card 41: 71 9 44 13 17 55 66 81 6 64 | 25 1 32 44 17 85 9 18 81 71 20 21 15 78 66 75 93 6 59 64 13 55 14 8 91
|
||||||
|
Card 42: 88 46 40 3 83 93 30 8 48 5 | 95 37 5 83 3 24 8 62 38 99 26 30 40 46 10 18 93 15 91 19 88 36 16 48 53
|
||||||
|
Card 43: 52 38 9 87 80 99 75 37 92 50 | 37 72 74 84 39 20 60 57 98 22 95 77 90 83 6 43 58 87 33 80 52 78 3 56 9
|
||||||
|
Card 44: 10 23 22 43 73 91 15 32 27 70 | 20 38 60 59 43 8 23 76 70 45 91 68 32 25 11 72 92 53 33 77 31 10 99 27 64
|
||||||
|
Card 45: 47 26 18 28 43 88 6 62 86 31 | 53 31 17 22 27 59 95 73 26 3 76 61 32 40 55 67 46 9 75 94 6 43 57 28 42
|
||||||
|
Card 46: 24 36 64 28 92 16 1 11 47 81 | 57 82 92 76 4 52 53 20 85 36 29 26 3 84 1 32 35 73 33 2 83 27 50 14 16
|
||||||
|
Card 47: 11 16 9 67 43 84 37 93 50 26 | 19 98 47 75 55 99 32 88 93 94 2 16 73 57 17 89 1 46 71 78 7 61 27 84 8
|
||||||
|
Card 48: 45 19 66 95 5 51 80 60 89 73 | 3 32 13 48 52 73 18 75 68 94 28 59 20 26 46 93 10 27 24 63 61 55 39 43 78
|
||||||
|
Card 49: 89 24 49 90 47 69 75 1 61 23 | 67 18 11 39 55 9 76 13 72 88 69 50 15 4 87 26 73 70 54 43 5 64 84 58 7
|
||||||
|
Card 50: 53 8 14 57 67 1 9 61 13 99 | 54 59 75 20 35 45 15 56 60 51 85 7 25 48 73 11 32 23 41 69 92 14 70 67 44
|
||||||
|
Card 51: 42 58 18 68 12 67 63 32 62 88 | 25 21 19 36 86 57 23 80 79 54 98 10 15 99 93 40 47 51 6 52 94 7 89 26 1
|
||||||
|
Card 52: 64 57 7 52 32 68 70 73 35 8 | 86 79 31 55 85 9 12 97 18 93 6 76 72 63 58 2 41 65 50 47 34 25 81 62 74
|
||||||
|
Card 53: 35 34 51 91 45 49 56 69 94 99 | 1 11 60 49 34 51 30 77 25 35 69 56 43 55 38 99 88 15 12 91 45 95 90 73 94
|
||||||
|
Card 54: 16 1 7 36 13 88 22 5 9 55 | 9 33 39 71 1 10 13 22 74 56 7 30 36 41 21 8 47 5 46 66 79 32 63 55 48
|
||||||
|
Card 55: 38 7 21 53 19 55 2 33 11 36 | 53 44 87 55 71 7 28 73 2 94 42 36 33 16 22 18 79 19 85 12 38 40 89 11 21
|
||||||
|
Card 56: 12 9 60 83 87 34 5 42 86 91 | 68 87 80 39 57 75 19 95 61 51 76 21 74 24 12 83 93 20 97 42 52 69 91 5 34
|
||||||
|
Card 57: 89 63 85 12 96 57 95 60 73 90 | 24 49 65 87 91 12 95 9 50 37 84 67 36 62 47 31 41 54 45 26 64 52 33 79 56
|
||||||
|
Card 58: 69 50 65 36 54 46 60 66 79 53 | 65 79 54 50 92 40 31 73 1 48 46 53 60 67 72 77 63 36 9 69 97 66 39 99 22
|
||||||
|
Card 59: 44 20 70 14 54 12 53 33 40 80 | 44 33 91 17 40 20 14 86 31 70 36 80 83 76 53 12 78 25 54 45 61 52 29 77 81
|
||||||
|
Card 60: 41 71 90 97 53 91 68 52 65 14 | 35 80 83 15 97 41 91 22 54 70 75 14 48 37 90 69 39 68 60 53 65 21 49 42 76
|
||||||
|
Card 61: 74 42 54 38 19 30 73 18 6 67 | 42 71 11 23 57 19 38 17 8 55 20 44 31 76 25 72 13 86 50 21 15 88 54 79 32
|
||||||
|
Card 62: 2 58 94 86 48 38 18 29 59 76 | 28 66 52 64 86 71 34 3 13 53 22 14 69 11 72 54 27 42 24 91 75 62 68 51 57
|
||||||
|
Card 63: 14 47 6 31 72 22 96 86 32 55 | 47 94 45 15 92 50 86 32 6 31 9 19 14 13 76 8 22 72 99 55 96 27 73 82 18
|
||||||
|
Card 64: 83 63 36 68 81 58 95 65 14 2 | 55 72 42 93 20 84 99 62 90 18 48 76 38 96 91 59 88 37 98 23 7 46 60 19 82
|
||||||
|
Card 65: 88 67 40 18 65 30 6 79 57 8 | 17 59 29 66 21 48 57 18 67 23 79 16 90 82 8 30 10 92 86 42 88 53 65 98 60
|
||||||
|
Card 66: 9 51 73 19 96 80 75 87 91 47 | 57 11 82 30 78 8 20 58 88 98 5 87 61 28 95 15 26 73 27 9 14 12 75 76 68
|
||||||
|
Card 67: 27 14 23 65 97 8 61 22 34 38 | 87 40 96 93 64 33 18 41 95 98 47 39 57 20 13 50 55 22 74 85 89 21 28 58 84
|
||||||
|
Card 68: 21 53 58 92 95 29 47 33 77 22 | 6 49 37 51 58 7 94 47 77 13 53 11 17 25 50 33 15 81 56 30 1 16 24 19 85
|
||||||
|
Card 69: 17 53 19 13 35 15 26 54 63 12 | 99 41 34 32 4 87 81 98 15 44 64 69 61 23 58 17 79 80 59 9 57 86 72 54 56
|
||||||
|
Card 70: 8 94 37 56 90 43 96 7 67 76 | 90 30 42 98 3 59 64 92 93 58 52 86 23 49 37 5 34 31 95 6 7 4 74 43 2
|
||||||
|
Card 71: 98 61 90 28 93 85 99 53 66 62 | 57 74 77 69 70 23 75 24 40 11 13 82 35 36 17 14 15 8 50 32 41 62 97 26 58
|
||||||
|
Card 72: 33 83 94 80 69 74 81 65 41 82 | 99 88 35 93 8 9 53 47 14 63 75 60 61 38 36 94 12 15 27 16 77 87 68 56 10
|
||||||
|
Card 73: 98 99 97 64 14 53 3 41 22 50 | 39 32 57 17 77 13 52 90 51 66 4 23 59 79 22 5 67 20 10 86 80 26 93 55 16
|
||||||
|
Card 74: 79 33 10 24 41 95 45 13 86 7 | 29 69 89 16 12 76 36 83 54 34 73 40 57 97 88 66 31 53 50 47 37 84 3 96 81
|
||||||
|
Card 75: 12 2 84 59 72 50 80 22 44 81 | 2 84 30 11 70 54 48 58 85 26 94 16 90 22 65 60 72 40 93 66 14 32 80 88 19
|
||||||
|
Card 76: 15 75 71 49 24 4 13 51 82 89 | 71 74 89 84 68 24 87 41 66 75 13 51 11 39 49 38 44 15 4 67 56 59 82 83 92
|
||||||
|
Card 77: 48 94 85 78 23 64 3 46 53 19 | 69 19 78 3 36 15 74 91 68 4 33 16 96 38 46 53 85 94 23 44 64 42 99 48 6
|
||||||
|
Card 78: 40 92 79 69 9 90 27 6 55 63 | 45 85 36 5 93 70 22 47 57 12 88 4 89 15 26 30 29 77 76 10 84 54 48 17 1
|
||||||
|
Card 79: 82 91 80 99 18 95 59 69 19 78 | 78 15 69 24 23 18 19 97 55 98 53 82 59 99 95 4 92 80 2 43 70 47 93 91 31
|
||||||
|
Card 80: 18 69 14 33 62 65 57 94 83 70 | 28 48 22 97 60 27 3 85 68 52 37 76 46 67 17 65 18 98 89 94 33 78 70 92 11
|
||||||
|
Card 81: 56 21 33 99 86 77 28 80 53 35 | 86 79 52 94 49 74 92 1 35 8 96 91 53 28 78 80 22 85 41 3 98 99 65 2 25
|
||||||
|
Card 82: 83 54 52 46 35 59 77 2 11 78 | 30 98 21 28 77 89 52 59 31 1 75 83 79 33 61 6 8 78 54 2 14 11 35 46 16
|
||||||
|
Card 83: 82 98 3 83 39 46 61 68 91 5 | 79 22 3 34 18 86 98 5 82 93 81 57 67 12 60 83 51 46 27 62 91 33 90 65 63
|
||||||
|
Card 84: 19 2 23 89 53 98 3 48 77 91 | 9 77 57 61 55 2 84 3 14 60 23 48 98 89 64 53 43 91 16 19 7 46 35 44 66
|
||||||
|
Card 85: 74 70 80 22 78 84 48 57 67 75 | 50 42 3 60 80 19 99 70 39 6 74 57 36 25 54 48 29 9 84 37 12 30 44 46 17
|
||||||
|
Card 86: 92 49 27 86 14 67 25 85 10 87 | 86 72 57 68 71 47 17 90 22 29 12 36 20 66 84 91 76 96 44 48 85 34 24 56 39
|
||||||
|
Card 87: 41 21 80 47 77 64 55 13 63 99 | 40 72 77 62 54 13 23 98 73 33 2 3 42 51 65 41 99 80 88 74 55 84 79 21 63
|
||||||
|
Card 88: 87 40 46 5 49 88 60 13 38 29 | 38 37 68 40 4 58 55 87 66 60 20 26 92 10 2 13 90 7 59 29 17 27 49 54 46
|
||||||
|
Card 89: 9 84 31 42 33 25 86 38 37 94 | 37 78 21 31 4 91 42 71 23 30 73 55 75 7 15 5 35 81 19 33 94 63 92 25 80
|
||||||
|
Card 90: 39 38 79 40 96 57 56 90 97 48 | 43 1 61 30 28 80 64 26 50 19 77 23 4 78 33 52 5 58 60 31 95 72 35 91 70
|
||||||
|
Card 91: 7 52 99 74 30 59 68 48 80 14 | 20 2 83 64 1 19 66 15 16 24 50 93 53 88 6 46 13 56 32 82 97 51 67 10 33
|
||||||
|
Card 92: 19 23 1 88 80 22 26 31 76 74 | 60 12 98 28 95 30 38 22 61 16 31 76 21 62 46 15 82 25 41 44 63 58 89 57 37
|
||||||
|
Card 93: 88 94 16 71 8 24 81 77 90 43 | 36 53 17 65 29 34 22 91 43 76 54 64 95 82 73 8 12 9 1 44 93 80 14 55 72
|
||||||
|
Card 94: 92 59 16 51 77 99 41 13 64 72 | 78 52 57 45 75 62 86 90 18 40 58 6 11 51 81 20 38 66 88 68 7 53 34 76 56
|
||||||
|
Card 95: 92 1 56 16 94 38 51 71 53 46 | 85 93 64 44 68 59 20 98 62 67 77 99 23 48 91 10 40 87 13 55 7 34 58 45 15
|
||||||
|
Card 96: 8 2 71 53 58 42 17 56 40 28 | 88 41 68 33 64 32 48 55 62 20 95 76 72 94 11 96 31 63 59 3 79 82 54 69 43
|
||||||
|
Card 97: 47 21 49 98 40 26 92 32 28 85 | 28 65 52 98 45 42 10 18 44 82 38 60 66 21 49 22 85 40 16 32 47 20 27 51 2
|
||||||
|
Card 98: 91 76 77 26 7 47 53 1 82 41 | 26 33 44 37 82 41 75 64 79 95 76 17 86 52 30 97 94 16 61 78 66 42 46 63 34
|
||||||
|
Card 99: 10 72 12 27 38 17 50 57 25 29 | 92 31 53 48 50 57 25 81 39 12 15 2 19 55 43 32 17 29 72 65 27 33 77 38 75
|
||||||
|
Card 100: 43 65 55 94 99 11 93 6 91 88 | 32 55 53 22 83 94 12 96 7 25 48 57 75 93 38 11 23 43 92 91 60 88 4 99 78
|
||||||
|
Card 101: 91 30 63 15 33 87 61 50 64 19 | 52 76 9 44 6 75 53 79 69 11 37 46 74 65 80 47 66 10 13 2 72 3 20 54 32
|
||||||
|
Card 102: 33 71 42 22 29 58 65 67 26 87 | 94 18 67 39 66 46 52 80 22 29 50 86 42 74 25 95 23 87 26 8 53 7 16 33 71
|
||||||
|
Card 103: 42 18 40 16 12 91 28 47 56 34 | 59 66 26 34 57 56 91 52 12 13 7 21 16 83 42 72 18 64 97 41 28 40 47 35 45
|
||||||
|
Card 104: 35 23 73 88 45 16 38 84 60 66 | 2 84 35 1 91 45 67 78 9 73 31 8 95 51 55 38 27 16 88 66 23 17 58 82 60
|
||||||
|
Card 105: 97 13 6 16 98 22 7 15 21 33 | 97 70 96 13 12 18 25 16 30 98 6 22 7 21 17 71 26 78 4 1 82 33 85 15 10
|
||||||
|
Card 106: 99 97 31 59 9 81 80 14 53 35 | 71 35 97 17 88 99 59 24 82 81 21 14 6 33 57 46 69 9 80 31 66 62 77 43 53
|
||||||
|
Card 107: 55 18 42 53 47 62 50 80 15 20 | 92 69 48 24 11 73 62 12 70 20 7 10 71 59 38 75 63 80 4 65 42 67 84 91 66
|
||||||
|
Card 108: 79 3 99 80 45 2 50 95 72 22 | 33 73 6 98 13 34 41 71 47 32 11 27 29 30 63 92 57 51 74 24 2 12 31 59 62
|
||||||
|
Card 109: 26 99 85 49 34 10 63 54 92 19 | 74 31 54 61 33 22 75 37 82 35 34 94 19 98 29 70 57 5 99 96 64 92 42 53 43
|
||||||
|
Card 110: 15 18 92 59 99 34 19 78 20 45 | 44 59 98 12 61 41 90 99 9 92 57 88 15 81 51 95 2 62 30 19 96 7 43 80 45
|
||||||
|
Card 111: 17 88 22 95 77 64 2 21 42 43 | 13 34 64 27 57 76 92 24 43 75 60 74 77 26 80 89 88 14 2 32 42 91 37 79 82
|
||||||
|
Card 112: 50 96 38 27 48 69 29 67 62 6 | 1 15 62 89 67 93 48 44 64 14 9 19 92 12 29 51 20 33 31 26 74 11 27 49 87
|
||||||
|
Card 113: 40 62 52 45 88 24 57 1 12 76 | 69 81 43 41 78 54 10 91 80 87 15 6 8 38 37 34 95 11 76 18 27 70 29 26 75
|
||||||
|
Card 114: 95 70 93 78 28 30 46 50 53 71 | 25 91 10 41 16 33 68 85 82 76 83 21 94 74 26 13 29 47 4 92 5 56 67 55 20
|
||||||
|
Card 115: 46 50 16 33 72 34 51 27 6 97 | 57 91 15 78 84 89 59 41 79 55 14 94 62 28 32 76 25 31 72 56 37 63 64 83 69
|
||||||
|
Card 116: 26 57 31 54 53 22 27 66 34 91 | 93 72 75 36 18 79 46 56 11 23 51 65 35 84 60 28 6 3 25 81 89 58 10 85 30
|
||||||
|
Card 117: 34 60 67 13 62 90 76 41 25 89 | 5 19 46 58 73 61 28 84 98 95 39 15 85 27 47 42 63 87 69 92 31 17 91 72 70
|
||||||
|
Card 118: 73 71 30 16 99 79 4 82 57 78 | 52 82 67 65 17 51 63 71 57 64 31 53 72 44 2 4 30 27 18 81 98 61 22 28 73
|
||||||
|
Card 119: 88 10 85 91 82 94 57 71 34 56 | 53 48 15 56 36 88 61 25 91 94 89 43 95 67 71 58 93 10 51 85 63 34 57 55 82
|
||||||
|
Card 120: 73 11 74 30 65 64 79 2 87 99 | 2 62 73 65 68 99 55 63 38 11 39 15 13 74 10 79 64 57 36 50 30 25 67 94 87
|
||||||
|
Card 121: 82 2 97 58 85 56 78 48 38 99 | 53 93 97 48 38 85 95 75 78 27 56 58 4 6 82 2 40 62 32 99 63 5 20 49 80
|
||||||
|
Card 122: 50 65 62 43 11 68 37 51 48 77 | 40 56 7 5 95 2 88 43 24 62 68 1 11 98 77 78 81 53 70 29 35 76 54 67 48
|
||||||
|
Card 123: 37 11 30 64 67 23 72 91 39 41 | 88 14 55 30 87 44 25 45 72 11 90 21 19 39 91 29 53 67 64 23 46 37 41 80 6
|
||||||
|
Card 124: 83 42 96 57 59 52 6 58 25 16 | 12 19 83 47 65 89 55 82 10 59 68 16 7 52 76 3 92 77 58 48 66 96 53 91 70
|
||||||
|
Card 125: 39 14 78 98 31 87 93 62 9 18 | 62 29 98 27 78 18 47 54 31 52 9 39 43 34 66 14 23 50 93 48 42 90 79 69 19
|
||||||
|
Card 126: 12 80 29 17 51 46 61 1 94 9 | 29 69 85 77 93 23 25 41 8 27 3 9 74 17 83 53 45 71 30 39 98 78 14 67 61
|
||||||
|
Card 127: 40 47 45 95 64 48 75 25 46 81 | 95 87 94 62 75 42 66 27 25 84 93 46 40 71 64 57 1 5 15 21 48 81 55 29 90
|
||||||
|
Card 128: 23 69 80 39 51 2 76 59 48 5 | 44 83 13 66 57 56 64 32 6 94 63 46 61 49 17 59 42 74 19 81 97 7 45 99 58
|
||||||
|
Card 129: 7 40 52 64 28 32 30 73 1 90 | 68 28 77 11 91 73 72 74 33 80 50 63 95 69 2 15 88 35 90 30 21 42 67 26 39
|
||||||
|
Card 130: 28 86 26 91 69 27 78 31 36 38 | 38 57 91 88 64 55 27 74 79 53 29 28 4 44 69 86 67 26 87 71 32 49 17 1 31
|
||||||
|
Card 131: 6 18 56 24 50 10 36 96 49 11 | 58 96 27 31 39 9 8 62 54 33 21 55 22 72 63 73 49 6 38 89 75 18 36 25 3
|
||||||
|
Card 132: 5 67 70 65 76 33 38 14 22 71 | 38 22 91 55 60 34 46 11 54 73 6 45 24 51 95 28 67 26 14 79 7 98 18 84 2
|
||||||
|
Card 133: 97 25 71 76 81 89 60 29 72 57 | 27 3 14 66 75 72 83 6 29 61 71 86 55 99 90 48 20 67 98 42 21 69 30 78 91
|
||||||
|
Card 134: 52 97 35 89 51 71 73 65 5 27 | 4 82 10 39 2 22 5 8 37 53 73 26 68 12 6 95 90 83 43 23 11 31 27 70 86
|
||||||
|
Card 135: 80 92 78 96 7 16 79 93 40 65 | 55 36 17 69 43 85 79 57 40 2 21 35 66 60 98 62 6 23 76 50 48 3 8 37 9
|
||||||
|
Card 136: 68 9 55 86 78 6 7 4 76 43 | 52 81 71 44 70 8 20 34 56 24 13 72 29 78 91 25 12 11 26 51 97 68 84 99 10
|
||||||
|
Card 137: 69 29 5 77 60 26 78 8 24 9 | 97 16 68 82 59 32 37 15 7 43 48 46 79 6 63 66 1 67 40 57 75 74 17 10 81
|
||||||
|
Card 138: 33 58 75 1 43 41 12 51 21 74 | 10 82 56 19 27 14 11 83 15 29 44 94 59 93 81 62 23 53 31 52 80 92 22 79 54
|
||||||
|
Card 139: 92 72 56 86 21 68 79 99 15 25 | 24 60 93 45 42 9 72 99 8 48 25 67 68 83 31 15 56 62 66 86 40 21 92 79 37
|
||||||
|
Card 140: 96 21 85 97 86 37 16 15 44 84 | 86 18 15 98 21 97 43 85 3 31 16 13 69 84 91 94 1 96 59 47 34 37 49 10 44
|
||||||
|
Card 141: 97 75 69 95 37 81 22 71 60 65 | 68 33 83 93 81 21 64 15 54 45 16 58 94 56 65 34 69 60 72 98 18 51 37 5 71
|
||||||
|
Card 142: 12 19 89 22 10 21 36 72 8 66 | 49 87 19 32 10 81 61 3 66 98 58 36 72 12 21 11 8 34 22 77 65 25 82 89 86
|
||||||
|
Card 143: 22 88 25 82 73 86 72 97 5 45 | 91 65 15 79 31 97 72 88 45 22 60 86 75 5 82 12 52 8 4 73 18 56 33 25 99
|
||||||
|
Card 144: 53 64 57 62 39 52 29 58 11 93 | 31 99 11 71 13 42 52 17 39 53 75 64 72 41 62 58 45 83 90 79 4 29 57 93 74
|
||||||
|
Card 145: 78 80 29 81 42 61 9 87 74 4 | 23 82 21 80 73 95 86 81 68 74 87 20 9 92 26 42 11 67 46 4 84 65 41 78 61
|
||||||
|
Card 146: 58 15 80 20 75 60 18 55 22 89 | 40 57 16 65 36 84 49 54 30 4 95 81 29 79 27 87 89 39 97 34 77 72 83 88 91
|
||||||
|
Card 147: 49 81 37 83 15 94 25 61 41 54 | 61 41 57 92 67 17 7 54 95 51 87 46 84 13 60 31 24 14 69 98 32 86 77 94 75
|
||||||
|
Card 148: 53 38 98 41 62 91 80 71 7 19 | 32 47 2 80 53 94 73 45 62 10 38 51 30 83 98 50 12 27 7 91 68 41 92 19 71
|
||||||
|
Card 149: 53 4 21 55 60 84 23 46 75 70 | 66 35 53 92 25 23 75 21 46 84 10 38 26 70 49 13 60 55 4 58 31 51 18 16 94
|
||||||
|
Card 150: 19 76 99 73 40 67 11 71 29 75 | 67 99 42 93 78 96 60 46 75 64 85 10 94 71 43 81 20 50 77 56 40 30 9 19 57
|
||||||
|
Card 151: 86 18 64 56 88 16 92 55 57 4 | 48 12 94 41 65 83 10 46 61 74 82 98 91 6 21 59 9 71 7 90 43 33 40 76 57
|
||||||
|
Card 152: 86 65 15 10 97 80 32 68 69 62 | 91 39 81 67 61 88 23 24 21 6 32 31 77 89 86 64 40 68 41 46 47 37 33 9 44
|
||||||
|
Card 153: 90 73 56 83 21 5 43 61 2 3 | 75 64 50 92 88 15 83 39 41 90 73 94 3 85 87 61 2 18 65 31 21 56 76 72 89
|
||||||
|
Card 154: 27 68 9 51 20 61 42 91 57 5 | 6 17 1 74 60 27 61 28 23 26 87 68 83 48 99 25 50 22 93 21 34 56 72 40 5
|
||||||
|
Card 155: 37 29 63 14 59 77 98 39 54 1 | 95 85 76 31 98 87 1 14 59 22 99 92 88 39 49 54 19 29 80 84 37 20 55 27 7
|
||||||
|
Card 156: 87 39 14 59 27 95 94 19 60 24 | 21 23 2 50 68 27 62 37 26 66 59 67 30 39 76 60 36 89 35 94 73 95 22 10 48
|
||||||
|
Card 157: 43 9 89 71 6 20 7 86 47 50 | 7 45 88 37 5 42 83 12 64 30 20 67 62 54 27 89 51 73 46 65 61 86 19 34 22
|
||||||
|
Card 158: 76 2 28 74 26 77 95 59 34 70 | 41 56 15 91 53 4 9 25 72 42 10 98 84 78 77 24 50 54 96 89 86 62 71 68 8
|
||||||
|
Card 159: 15 29 97 92 87 47 77 5 42 83 | 67 94 35 57 89 64 34 44 52 69 56 25 37 11 60 18 30 33 43 80 78 24 79 92 2
|
||||||
|
Card 160: 77 88 30 64 32 4 59 17 69 28 | 62 39 58 13 60 45 7 26 29 49 96 12 34 3 57 61 17 33 10 68 65 56 2 75 88
|
||||||
|
Card 161: 18 31 21 98 59 23 6 19 39 8 | 80 67 83 68 71 13 72 24 47 49 9 14 44 77 61 4 41 48 12 78 11 90 15 79 64
|
||||||
|
Card 162: 61 40 24 17 74 93 33 59 30 22 | 41 80 74 14 90 15 5 91 34 87 70 3 96 68 16 13 86 65 37 38 47 60 88 10 8
|
||||||
|
Card 163: 79 77 57 65 61 47 70 26 17 73 | 7 88 44 50 29 82 34 93 66 15 89 19 90 36 64 81 8 48 62 53 39 68 55 43 86
|
||||||
|
Card 164: 13 81 91 41 8 99 73 23 30 25 | 12 31 22 4 51 49 23 30 15 32 9 79 87 88 91 6 90 95 1 73 25 43 41 99 46
|
||||||
|
Card 165: 62 95 5 15 98 17 34 80 18 84 | 17 4 24 14 81 74 94 34 87 5 75 62 15 23 49 71 36 84 95 18 98 41 63 13 80
|
||||||
|
Card 166: 80 6 76 69 9 41 56 36 96 34 | 13 68 30 2 24 6 78 74 41 29 44 61 11 48 87 65 33 47 40 99 1 4 14 23 73
|
||||||
|
Card 167: 19 39 50 83 92 1 9 38 97 32 | 6 30 44 56 63 95 34 18 64 26 31 27 47 94 99 10 14 81 62 78 77 16 29 53 39
|
||||||
|
Card 168: 3 5 29 60 62 86 48 22 19 35 | 92 46 66 63 1 57 68 40 49 20 25 47 45 17 18 58 83 98 34 70 52 91 86 38 89
|
||||||
|
Card 169: 29 19 60 14 76 91 77 48 93 86 | 31 22 77 64 61 28 45 38 55 42 46 2 83 48 19 94 58 32 60 84 18 92 89 66 15
|
||||||
|
Card 170: 98 9 24 43 10 36 88 13 97 82 | 34 31 13 93 35 89 4 97 52 11 18 83 51 58 30 10 8 98 38 43 24 36 82 9 28
|
||||||
|
Card 171: 11 74 12 80 48 18 7 92 34 13 | 48 55 65 79 39 9 18 21 20 14 72 58 40 13 37 31 1 53 92 29 88 95 54 35 46
|
||||||
|
Card 172: 73 95 64 94 56 81 89 67 17 26 | 74 16 64 59 40 86 89 34 95 91 26 79 66 49 76 48 72 21 17 81 32 56 38 6 85
|
||||||
|
Card 173: 63 91 88 29 57 59 44 13 96 15 | 96 30 70 75 9 21 94 99 51 41 80 68 59 15 73 91 48 19 78 38 13 17 36 98 49
|
||||||
|
Card 174: 75 27 25 34 41 42 70 96 38 29 | 29 74 78 15 48 18 71 3 96 16 25 66 63 17 19 27 99 54 30 65 13 67 42 89 35
|
||||||
|
Card 175: 15 74 27 36 55 75 94 26 63 42 | 58 91 87 71 80 47 12 36 99 70 20 61 14 17 27 68 21 63 31 56 42 1 78 49 44
|
||||||
|
Card 176: 1 98 51 53 64 77 83 24 34 16 | 25 32 11 88 58 9 37 4 77 43 14 46 21 23 44 35 33 13 49 57 52 73 87 48 10
|
||||||
|
Card 177: 44 22 27 47 61 84 26 95 37 97 | 95 9 49 89 32 83 56 42 54 76 28 14 75 51 93 17 94 85 71 96 44 88 41 59 4
|
||||||
|
Card 178: 40 32 5 93 80 62 92 82 49 25 | 12 90 73 35 85 21 47 48 54 2 28 20 22 86 78 74 24 62 18 77 71 59 82 6 1
|
||||||
|
Card 179: 27 17 67 60 90 70 36 25 1 12 | 16 35 51 91 46 29 17 71 74 33 37 30 69 57 48 20 9 76 80 31 26 59 85 72 44
|
||||||
|
Card 180: 4 64 95 14 20 18 28 5 27 75 | 60 57 85 48 92 61 79 16 41 51 81 30 93 44 66 13 52 32 98 82 25 21 34 56 3
|
||||||
|
Card 181: 74 73 79 94 9 84 63 62 91 35 | 94 77 96 61 83 8 79 69 21 32 84 81 86 98 9 74 90 35 44 43 82 50 62 73 19
|
||||||
|
Card 182: 46 97 7 34 99 64 57 48 33 77 | 34 85 33 3 15 76 52 89 66 97 65 90 86 80 60 72 99 64 82 12 46 41 8 21 61
|
||||||
|
Card 183: 1 60 48 82 6 68 46 96 74 71 | 68 66 82 1 46 48 28 6 69 96 25 13 93 38 71 7 50 55 43 74 79 60 41 47 73
|
||||||
|
Card 184: 18 42 14 51 27 78 53 93 21 69 | 21 39 75 5 51 93 25 84 53 26 69 38 14 27 88 15 40 42 62 78 92 58 31 49 18
|
||||||
|
Card 185: 73 49 30 67 90 65 23 52 18 47 | 54 71 65 10 47 90 49 30 79 67 73 2 75 18 16 31 98 94 78 29 17 66 52 23 1
|
||||||
|
Card 186: 21 7 99 86 16 12 20 53 89 22 | 89 49 56 92 9 18 95 52 74 6 85 15 4 19 55 24 33 10 53 22 28 78 42 38 12
|
||||||
|
Card 187: 73 92 16 74 60 72 19 87 10 59 | 92 23 13 87 72 5 74 15 20 60 59 71 53 79 63 31 73 55 16 54 97 78 10 21 19
|
||||||
|
Card 188: 57 1 2 31 17 52 68 45 88 56 | 68 94 5 1 31 11 44 79 89 56 32 2 45 90 97 17 96 9 57 10 88 14 86 78 52
|
||||||
|
Card 189: 15 31 46 58 50 8 48 96 49 38 | 33 96 2 15 49 78 30 56 13 46 53 8 38 63 31 88 58 48 19 50 85 26 76 99 87
|
||||||
|
Card 190: 65 2 86 57 79 7 89 41 32 50 | 13 94 54 33 3 96 57 77 17 38 1 18 61 43 53 73 24 81 49 10 70 39 51 46 27
|
||||||
|
Card 191: 51 50 25 84 85 23 34 40 88 45 | 68 48 84 62 93 92 34 80 36 42 56 88 26 41 8 17 85 15 70 65 11 23 12 2 3
|
||||||
|
Card 192: 65 57 15 10 60 9 42 36 74 71 | 12 67 56 89 26 24 61 87 50 54 96 47 3 93 49 63 82 75 21 88 8 45 94 19 64
|
||||||
|
Card 193: 19 59 37 75 85 24 56 5 6 28 | 75 15 37 7 21 95 39 77 17 49 72 44 6 16 63 85 59 87 5 83 56 47 19 71 30
|
||||||
|
Card 194: 99 50 96 60 12 48 81 92 9 29 | 48 61 82 88 75 72 12 29 53 28 10 4 80 37 9 96 69 81 25 99 36 50 92 21 60
|
||||||
|
Card 195: 41 36 67 61 12 95 78 63 29 24 | 2 53 16 27 21 48 36 88 98 30 78 86 63 77 62 92 69 41 7 68 70 50 22 5 61
|
||||||
|
Card 196: 79 35 7 64 14 37 90 16 40 9 | 1 18 86 66 32 92 63 36 26 99 82 95 21 46 81 17 75 59 85 27 15 29 83 43 84
|
||||||
|
Card 197: 18 63 11 37 30 96 60 16 61 89 | 88 6 67 10 90 43 66 26 53 55 22 96 27 42 91 80 73 12 37 11 31 5 33 52 23
|
||||||
|
Card 198: 20 73 72 16 31 83 88 36 95 44 | 15 32 92 52 31 49 46 97 65 71 39 16 72 67 50 68 28 8 87 25 11 61 96 43 86
|
||||||
|
Card 199: 71 57 94 28 4 49 25 47 42 44 | 70 86 29 64 37 5 99 74 71 25 10 40 12 87 66 60 33 77 28 75 52 31 79 96 49
|
||||||
|
Card 200: 90 67 89 44 21 45 31 4 92 63 | 13 8 76 70 26 29 74 2 88 47 46 10 25 43 97 65 27 73 16 71 55 40 58 69 66
|
||||||
|
Card 201: 80 70 21 52 81 91 27 61 72 12 | 46 62 18 54 44 77 92 80 38 9 43 76 93 94 14 79 86 58 15 40 31 16 2 33 96
|
||||||
|
Card 202: 96 97 42 50 23 41 81 52 17 28 | 4 55 64 51 1 97 91 93 95 60 33 45 99 83 62 26 86 16 12 2 3 92 87 74 37
|
||||||
|
Card 203: 3 95 82 57 59 23 20 77 49 28 | 60 35 25 96 83 91 47 86 40 73 33 24 12 48 55 67 88 85 16 31 70 32 17 66 97
|
||||||
|
Card 204: 11 9 81 75 39 52 19 96 47 66 | 37 22 70 43 51 72 7 67 50 83 90 23 24 28 57 87 86 13 27 76 94 35 40 17 91
|
|
@ -0,0 +1,203 @@
|
||||||
|
package day5
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"math"
|
||||||
|
"os"
|
||||||
|
"sort"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Almanach struct {
|
||||||
|
SeedToSoil,
|
||||||
|
SoilToFert,
|
||||||
|
FertToWater,
|
||||||
|
WaterToLight,
|
||||||
|
LightToTemp,
|
||||||
|
TempToHum,
|
||||||
|
HumToLocation EfficientMap
|
||||||
|
}
|
||||||
|
|
||||||
|
type Triplet struct {
|
||||||
|
target, source, rangeLen int
|
||||||
|
}
|
||||||
|
type EfficientMap struct {
|
||||||
|
mappings []Triplet
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m EfficientMap) applyMap(source int) int {
|
||||||
|
for _, triplet := range m.mappings {
|
||||||
|
sourceStart, sourceEnd := triplet.source, triplet.source + triplet.rangeLen
|
||||||
|
if source >= sourceStart && source <= sourceEnd {
|
||||||
|
diff := source - sourceStart
|
||||||
|
return triplet.target + diff
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return source
|
||||||
|
}
|
||||||
|
|
||||||
|
func applyMap(source int, mapping map[int]int) int {
|
||||||
|
var result int
|
||||||
|
result, found := mapping[source]
|
||||||
|
if !found {
|
||||||
|
result = source
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a Almanach)locationForSeed(seed int) int {
|
||||||
|
// log.Print("starting calc of location for seed %n", seed)
|
||||||
|
soil := a.SeedToSoil.applyMap(seed)
|
||||||
|
fert := a.SoilToFert.applyMap(soil)
|
||||||
|
water := a.FertToWater.applyMap(fert)
|
||||||
|
light := a.WaterToLight.applyMap(water)
|
||||||
|
temp := a.LightToTemp.applyMap(light)
|
||||||
|
hum := a.TempToHum.applyMap(temp)
|
||||||
|
location := a.HumToLocation.applyMap(hum)
|
||||||
|
return location
|
||||||
|
}
|
||||||
|
|
||||||
|
func Run() int {
|
||||||
|
fmt.Println("the day 5")
|
||||||
|
inputDir := "day5/input"
|
||||||
|
seedToSoil := fmt.Sprint(inputDir, "/seed-to-soil")
|
||||||
|
log.Print("finished seed map")
|
||||||
|
soilToFert := fmt.Sprint(inputDir, "/soil-to-fertilizer")
|
||||||
|
log.Print("finished soil map")
|
||||||
|
fertToWater := fmt.Sprint(inputDir, "/fertilizer-to-water")
|
||||||
|
log.Print("finished fert map")
|
||||||
|
waterToLight := fmt.Sprint(inputDir, "/water-to-light")
|
||||||
|
log.Print("finished water map")
|
||||||
|
lightToTemp := fmt.Sprint(inputDir, "/light-to-temperature")
|
||||||
|
log.Print("finished light map")
|
||||||
|
tempToHum := fmt.Sprint(inputDir, "/temperature-to-humidity")
|
||||||
|
log.Print("finished temp map")
|
||||||
|
humToLocation := fmt.Sprint(inputDir, "/humidity-to-location")
|
||||||
|
|
||||||
|
seedsFileName := fmt.Sprint(inputDir, "/seeds")
|
||||||
|
seedsBytes, err := os.ReadFile(seedsFileName)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprint("error reading seeds file ", seedsFileName))
|
||||||
|
}
|
||||||
|
seedsLine := string(seedsBytes)
|
||||||
|
var seeds []int
|
||||||
|
for _, seedStr := range strings.Fields(seedsLine) {
|
||||||
|
seed, err := strconv.Atoi(seedStr)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprint("can't read seeds ", seedStr))
|
||||||
|
}
|
||||||
|
seeds = append(seeds, seed)
|
||||||
|
}
|
||||||
|
log.Print("finished for seeds file", seeds)
|
||||||
|
|
||||||
|
almanach := Almanach{
|
||||||
|
SeedToSoil: ReadMap(seedToSoil),
|
||||||
|
SoilToFert: ReadMap(soilToFert),
|
||||||
|
FertToWater: ReadMap(fertToWater),
|
||||||
|
WaterToLight: ReadMap(waterToLight),
|
||||||
|
LightToTemp: ReadMap(lightToTemp),
|
||||||
|
TempToHum: ReadMap(tempToHum),
|
||||||
|
HumToLocation: ReadMap(humToLocation),
|
||||||
|
}
|
||||||
|
log.Print("created almanach")
|
||||||
|
|
||||||
|
result := math.MaxInt
|
||||||
|
log.Print("before seed range")
|
||||||
|
seedRanges := make([][]int, 0)
|
||||||
|
for i := 0; i < len(seeds)-1; i += 2 {
|
||||||
|
start := seeds[i]
|
||||||
|
seedRangeLen := seeds[i+1]
|
||||||
|
seedRanges = append(seedRanges, []int{start, start+seedRangeLen})
|
||||||
|
}
|
||||||
|
|
||||||
|
rangeMins := make(chan int, len(seedRanges))
|
||||||
|
var wg sync.WaitGroup
|
||||||
|
|
||||||
|
mergedSeedRanges := merge(seedRanges)
|
||||||
|
for _, seedRange := range mergedSeedRanges {
|
||||||
|
wg.Add(1)
|
||||||
|
go func(seedRange []int) {
|
||||||
|
log.Printf("starting new range %+v. current min is %d", seedRange, result)
|
||||||
|
rangeMin := math.MaxInt
|
||||||
|
for i := seedRange[0]; i <= seedRange[1]; i++ {
|
||||||
|
location := almanach.locationForSeed(i)
|
||||||
|
if location < rangeMin {
|
||||||
|
rangeMins<- location
|
||||||
|
rangeMin = location
|
||||||
|
}
|
||||||
|
}
|
||||||
|
wg.Done()
|
||||||
|
return
|
||||||
|
}(seedRange)
|
||||||
|
}
|
||||||
|
|
||||||
|
go func() {
|
||||||
|
wg.Wait()
|
||||||
|
close(rangeMins)
|
||||||
|
}()
|
||||||
|
|
||||||
|
for rangeMin := range rangeMins {
|
||||||
|
log.Printf("processing range min : %d. cur result is %d", rangeMin, result)
|
||||||
|
if rangeMin <= result {
|
||||||
|
result = rangeMin
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
// copy from https://codereview.stackexchange.com/questions/259048/merge-intervalsgolang
|
||||||
|
func merge(intervals [][]int) [][]int {
|
||||||
|
const start, end = 0, 1
|
||||||
|
|
||||||
|
var merged [][]int
|
||||||
|
|
||||||
|
if len(intervals) > 1 {
|
||||||
|
sort.Slice(intervals, func(i, j int) bool {
|
||||||
|
return intervals[i][start] < intervals[j][start]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, interval := range intervals {
|
||||||
|
last := len(merged) - 1
|
||||||
|
if last < 0 || interval[start] > merged[last][end] {
|
||||||
|
merged = append(merged,
|
||||||
|
[]int{start: interval[start], end: interval[end]},
|
||||||
|
)
|
||||||
|
} else if interval[end] > merged[last][end] {
|
||||||
|
merged[last][end] = interval[end]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return merged[:len(merged):len(merged)]
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadMap(filename string) EfficientMap {
|
||||||
|
log.Printf("reading in map from %s", filename)
|
||||||
|
result := make([]Triplet, 0)
|
||||||
|
bytes, err := os.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("error reading file %s", filename))
|
||||||
|
}
|
||||||
|
text := string(bytes)
|
||||||
|
text = strings.TrimSpace(text)
|
||||||
|
for _, line := range strings.Split(text, "\n") {
|
||||||
|
nums := strings.Fields(line)
|
||||||
|
if len(nums) != 3 {
|
||||||
|
panic(fmt.Sprint("error, map line doesn't have 3 nums: ", line, nums))
|
||||||
|
}
|
||||||
|
destinaitonStart, err1 := strconv.Atoi(nums[0])
|
||||||
|
sourceStart, err2 := strconv.Atoi(nums[1])
|
||||||
|
rangeLength, err3 := strconv.Atoi(nums[2])
|
||||||
|
if err1 != nil || err2 != nil || err3 != nil {
|
||||||
|
panic(fmt.Sprint("error converting one of the numbers: ", nums))
|
||||||
|
}
|
||||||
|
result = append(result, Triplet{destinaitonStart, sourceStart, rangeLength})
|
||||||
|
}
|
||||||
|
|
||||||
|
return EfficientMap{result}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
49 53 8
|
||||||
|
0 11 42
|
||||||
|
42 0 7
|
||||||
|
57 7 4
|
|
@ -0,0 +1,2 @@
|
||||||
|
60 56 37
|
||||||
|
56 93 4
|
|
@ -0,0 +1,3 @@
|
||||||
|
45 77 23
|
||||||
|
81 45 19
|
||||||
|
68 64 13
|
|
@ -0,0 +1,2 @@
|
||||||
|
50 98 2
|
||||||
|
52 50 48
|
|
@ -0,0 +1 @@
|
||||||
|
79 14 55 13
|
|
@ -0,0 +1,3 @@
|
||||||
|
0 15 37
|
||||||
|
37 52 2
|
||||||
|
39 0 15
|
|
@ -0,0 +1,2 @@
|
||||||
|
0 69 1
|
||||||
|
1 0 69
|
|
@ -0,0 +1,2 @@
|
||||||
|
88 18 7
|
||||||
|
18 25 70
|
|
@ -0,0 +1,27 @@
|
||||||
|
4238460975 3150676058 14156194
|
||||||
|
4014738493 2552067322 165315151
|
||||||
|
2782663538 3067003586 60442604
|
||||||
|
718350022 1496692875 242681298
|
||||||
|
0 662267357 48987302
|
||||||
|
73802866 465780476 196486881
|
||||||
|
270289747 736070223 448060275
|
||||||
|
2501821195 4263593575 31373721
|
||||||
|
961031320 0 47107691
|
||||||
|
2448671317 2498917444 53149878
|
||||||
|
2843106142 3164832252 729755546
|
||||||
|
4180053644 2717382473 58407331
|
||||||
|
2533194916 4223942180 39651395
|
||||||
|
48987302 711254659 24815564
|
||||||
|
2037107882 2799681618 267321968
|
||||||
|
2424779503 2775789804 23891814
|
||||||
|
1547175259 1304493961 192198914
|
||||||
|
4252617169 4084472268 19120259
|
||||||
|
1871165319 3918529705 61914957
|
||||||
|
3572861688 1871165319 441876805
|
||||||
|
2758721631 3894587798 23941907
|
||||||
|
2304429850 4103592527 120349653
|
||||||
|
1933080276 3980444662 104027606
|
||||||
|
1008139011 47107691 418672785
|
||||||
|
1426811796 1184130498 120363463
|
||||||
|
4271737428 3127446190 23229868
|
||||||
|
2572846311 2313042124 185875320
|
|
@ -0,0 +1,39 @@
|
||||||
|
4260564640 3164238850 33008819
|
||||||
|
2293789713 3286584985 52546193
|
||||||
|
2087002602 2864270962 68938922
|
||||||
|
1297747555 1309838844 89337809
|
||||||
|
3093628267 3842203176 155987450
|
||||||
|
2609276317 3498417185 343785991
|
||||||
|
658125616 1701481170 20754060
|
||||||
|
1593540119 1399176653 128695111
|
||||||
|
2283933279 2244808425 9856434
|
||||||
|
3849705959 3012295008 151943842
|
||||||
|
678879676 1170609407 139229437
|
||||||
|
1009204170 485451665 270016861
|
||||||
|
2155941524 4227835566 67131730
|
||||||
|
4032228982 4161145047 66690519
|
||||||
|
3532191685 2179585888 65222537
|
||||||
|
2953062308 2268317830 85579399
|
||||||
|
2252523457 3339131178 23090374
|
||||||
|
818109113 755468526 17485651
|
||||||
|
4098919501 2254664859 13652971
|
||||||
|
3379699400 2416907530 152492285
|
||||||
|
4293573459 2662947015 1393837
|
||||||
|
835594764 1527871764 173609406
|
||||||
|
2275613831 3422250936 8319448
|
||||||
|
4112572472 2933209884 24098564
|
||||||
|
1279221031 466925141 18526524
|
||||||
|
3038641707 2957308448 54986560
|
||||||
|
397655230 0 260470386
|
||||||
|
2223073254 3392800733 29450203
|
||||||
|
0 772954177 397655230
|
||||||
|
4136671036 3430570384 30346404
|
||||||
|
3597414222 3998190626 162954421
|
||||||
|
2546266016 2353897229 63010301
|
||||||
|
3249615717 3460916788 37500397
|
||||||
|
1387085364 260470386 206454755
|
||||||
|
3287116114 2087002602 92583286
|
||||||
|
3760368643 3197247669 89337316
|
||||||
|
2346335906 2664340852 199930110
|
||||||
|
4167017440 2569399815 93547200
|
||||||
|
4001649801 3362221552 30579181
|
|
@ -0,0 +1,42 @@
|
||||||
|
2521168614 3718558727 45222681
|
||||||
|
2372021437 4250929390 44037906
|
||||||
|
2416059343 3070381062 105109271
|
||||||
|
391082070 1490595758 135161830
|
||||||
|
2750033935 3567996322 26024928
|
||||||
|
2631208948 4085216210 118824987
|
||||||
|
1606793146 1161017018 154561777
|
||||||
|
0 27318229 64007187
|
||||||
|
2566391295 3763781408 64817653
|
||||||
|
2205452704 2073181756 31511904
|
||||||
|
2354729618 109736771 15352358
|
||||||
|
526243900 143079078 467881514
|
||||||
|
165490760 1625757588 156087087
|
||||||
|
321577847 610960592 69504223
|
||||||
|
1116662502 1843304861 180171121
|
||||||
|
2173847890 2322708438 31604814
|
||||||
|
64007187 1315578795 101483573
|
||||||
|
1315244978 1417062368 73533390
|
||||||
|
2989245773 2722605383 134588769
|
||||||
|
3800621948 4204041197 46888193
|
||||||
|
3287840442 2372021437 350583946
|
||||||
|
1067967658 12382058 14936171
|
||||||
|
3276570277 3971207241 11270165
|
||||||
|
3152032800 3594021250 124537477
|
||||||
|
1761354923 2023475982 49705774
|
||||||
|
2236964608 680464815 117765010
|
||||||
|
4152595905 3982477406 102738804
|
||||||
|
3847510141 3920328030 50879211
|
||||||
|
3638424388 3429696886 70468591
|
||||||
|
1098672553 125089129 17989949
|
||||||
|
1999021216 798229825 174826674
|
||||||
|
4255334709 3528363735 39632587
|
||||||
|
1296833623 91325416 18411355
|
||||||
|
3708892979 3828599061 91728969
|
||||||
|
1388778368 2104693660 218014778
|
||||||
|
1811060697 973056499 187960519
|
||||||
|
1082903829 2354313252 15768724
|
||||||
|
2776058863 2857194152 213186910
|
||||||
|
3898389352 3175490333 254206553
|
||||||
|
994125414 1781844675 61460186
|
||||||
|
3123834542 3500165477 28198258
|
||||||
|
1055585600 0 12382058
|
|
@ -0,0 +1,32 @@
|
||||||
|
3356468240 2934525445 29117552
|
||||||
|
4275689831 4042213712 19277465
|
||||||
|
949730239 1589971986 381295142
|
||||||
|
2205130246 3387543719 106537240
|
||||||
|
2442849314 2188173171 261901063
|
||||||
|
2027919967 875104547 177210279
|
||||||
|
4258838211 4278115676 16851620
|
||||||
|
1969509044 3125327238 8268732
|
||||||
|
3602491835 652291761 28146990
|
||||||
|
3630638825 3122528592 2798646
|
||||||
|
1725486280 3012647256 109881336
|
||||||
|
3232765106 192460045 36910273
|
||||||
|
4042213712 4061491177 216624499
|
||||||
|
2311667486 3256361891 131181828
|
||||||
|
2849273982 3133595970 102505596
|
||||||
|
1365732141 2963642997 49004259
|
||||||
|
3093408594 3494080959 139356512
|
||||||
|
3385585792 1971267128 216906043
|
||||||
|
2954083526 56695294 82629774
|
||||||
|
1331025381 2483732118 34706760
|
||||||
|
3322810356 2450074234 33657884
|
||||||
|
3269675379 139325068 53134977
|
||||||
|
2704750377 680438751 144523605
|
||||||
|
1977777776 824962356 50142191
|
||||||
|
929469914 3236101566 20260325
|
||||||
|
0 1363064706 224603332
|
||||||
|
1835367616 2800384017 134141428
|
||||||
|
647524775 2518438878 281945139
|
||||||
|
2951779578 1587668038 2303948
|
||||||
|
1414736400 1052314826 310749880
|
||||||
|
224603332 229370318 422921443
|
||||||
|
3036713300 0 56695294
|
|
@ -0,0 +1 @@
|
||||||
|
1482445116 339187393 3210489476 511905836 42566461 51849137 256584102 379575844 3040181568 139966026 4018529087 116808249 2887351536 89515778 669731009 806888490 2369242654 489923931 2086168596 82891253
|
|
@ -0,0 +1,35 @@
|
||||||
|
1496362907 858318422 178940893
|
||||||
|
2630847538 53056663 113045954
|
||||||
|
2283611281 2088524569 46779241
|
||||||
|
3913589699 3841520880 84292875
|
||||||
|
2330390522 2567432522 113508448
|
||||||
|
2524251705 2460836689 106595833
|
||||||
|
3063003021 2963042999 10035541
|
||||||
|
3857182342 4222898477 56407357
|
||||||
|
37310480 2913919563 49123436
|
||||||
|
740077448 300637488 194492816
|
||||||
|
1474645818 1456131667 21717089
|
||||||
|
934570264 166102617 54182136
|
||||||
|
988752400 1796958285 94278756
|
||||||
|
1717132707 1928547521 159977048
|
||||||
|
521508712 2758310702 26883128
|
||||||
|
3092599643 495130304 257125345
|
||||||
|
1877109755 2785193830 128725733
|
||||||
|
3997882574 3925813755 297084722
|
||||||
|
548391840 2269151081 191685608
|
||||||
|
3841520880 4279305834 15661462
|
||||||
|
86433916 2187553774 81597307
|
||||||
|
1675303800 816489515 41828907
|
||||||
|
2443898970 220284753 80352735
|
||||||
|
2005835488 2973078540 277775793
|
||||||
|
0 1891237041 37310480
|
||||||
|
1299192340 1390736804 45833782
|
||||||
|
1345026122 2680940970 77369732
|
||||||
|
168031223 1037259315 353477489
|
||||||
|
1083031156 3250854333 138997462
|
||||||
|
3073038562 1436570586 19561081
|
||||||
|
1275085281 792382456 24107059
|
||||||
|
1222028618 0 53056663
|
||||||
|
3349724988 752255649 40126807
|
||||||
|
2743893492 1477848756 319109529
|
||||||
|
1422395854 2135303810 52249964
|
|
@ -0,0 +1,37 @@
|
||||||
|
3270313314 2596058682 35302332
|
||||||
|
4226607799 1853648898 10548841
|
||||||
|
2997401183 2994049594 173176623
|
||||||
|
3460843740 3377888646 164140301
|
||||||
|
762069527 4252128205 42839091
|
||||||
|
3170577806 1535455627 99735508
|
||||||
|
356504730 1864197739 73760842
|
||||||
|
1176796835 3767577945 398679053
|
||||||
|
2184102927 1268190151 103654223
|
||||||
|
1839964412 1995769237 103314277
|
||||||
|
623505847 2855485914 138563680
|
||||||
|
551373625 970847216 72132222
|
||||||
|
2605053483 2099083514 149971726
|
||||||
|
804908618 510961861 330954039
|
||||||
|
2476122167 841915900 128931316
|
||||||
|
3809356495 2631856914 172503566
|
||||||
|
3981860061 3167226217 210662429
|
||||||
|
254072453 98437479 41846688
|
||||||
|
3305615646 1164087491 104102660
|
||||||
|
98437479 140284167 137804809
|
||||||
|
236242288 278088976 17830165
|
||||||
|
2939640029 1477694473 57761154
|
||||||
|
2390051063 2249055240 86071104
|
||||||
|
2755025209 3582963125 184614820
|
||||||
|
1135862657 3542028947 40934178
|
||||||
|
4237156640 1937958581 57810656
|
||||||
|
3409718306 2804360480 51125434
|
||||||
|
1943774589 4166256998 85871207
|
||||||
|
2029645796 356504730 154457131
|
||||||
|
3624984041 1827821728 25827170
|
||||||
|
430265572 1042979438 121108053
|
||||||
|
1575475888 1371844374 3556186
|
||||||
|
4192522490 1635191135 34085309
|
||||||
|
3650811211 1669276444 158545284
|
||||||
|
1943278689 2631361014 495900
|
||||||
|
1579032074 2335126344 260932338
|
||||||
|
2287757150 1375400560 102293913
|
|
@ -0,0 +1,17 @@
|
||||||
|
1985898327 3318267441 140753926
|
||||||
|
1347635148 2083526793 398378839
|
||||||
|
3514250773 2747115878 571151563
|
||||||
|
2126652253 1347635148 86837038
|
||||||
|
3336431644 3459021367 177819129
|
||||||
|
2927342235 1508339551 335222044
|
||||||
|
0 365247178 425818944
|
||||||
|
500722155 917309008 28280043
|
||||||
|
580341873 0 365247178
|
||||||
|
3262564279 1434472186 73867365
|
||||||
|
2662131989 2481905632 265210246
|
||||||
|
2213489291 3636840496 415606487
|
||||||
|
529002198 791066122 51339675
|
||||||
|
1746013987 1876597806 206928987
|
||||||
|
2629095778 1843561595 33036211
|
||||||
|
425818944 842405797 74903211
|
||||||
|
1952942974 4052446983 32955353
|
6
main.go
6
main.go
|
@ -3,11 +3,11 @@ package main
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"sunshine.industries/aoc2023/day3"
|
"sunshine.industries/aoc2023/day5"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
log.Print("> starting run:")
|
log.Print("> starting run:")
|
||||||
result := day3.Run()
|
result := day5.Run()
|
||||||
log.Printf("day3 result: %d", result)
|
log.Printf("day4 result: %d\n****\n", result)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue