Day14
This commit is contained in:
172
2024/gareth/day14/day14.go
Normal file
172
2024/gareth/day14/day14.go
Normal file
@@ -0,0 +1,172 @@
|
||||
package day14
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type Robot struct {
|
||||
px, py int // position
|
||||
vx, vy int // velocity
|
||||
}
|
||||
|
||||
func Part1(input string) int {
|
||||
// Parse the input
|
||||
lines := strings.Split(input, "\n")
|
||||
var robots []Robot
|
||||
for _, line := range lines {
|
||||
robot := ParseRobot(line)
|
||||
robots = append(robots, robot)
|
||||
}
|
||||
|
||||
// Define grid size
|
||||
gridWidth := 101
|
||||
gridHeight := 103
|
||||
|
||||
// Update robot positions for 100 seconds
|
||||
for i := 0; i < 100; i++ {
|
||||
for j := range robots {
|
||||
robots[j].UpdatePosition(gridWidth, gridHeight)
|
||||
}
|
||||
}
|
||||
|
||||
// Count the robots in each quadrant
|
||||
q1, q2, q3, q4 := CountRobotsInQuadrants(robots, gridWidth, gridHeight)
|
||||
fmt.Printf("Quadrant counts: Q1=%d, Q2=%d, Q3=%d, Q4=%d\n", q1, q2, q3, q4)
|
||||
|
||||
// Calculate the safety factor
|
||||
safetyFactor := CalculateSafetyFactor(q1, q2, q3, q4)
|
||||
fmt.Printf("Safety Factor: %d\n", safetyFactor)
|
||||
return safetyFactor
|
||||
}
|
||||
|
||||
func Part2(input string) int {
|
||||
// Parse the input
|
||||
lines := strings.Split(input, "\n")
|
||||
var robots []Robot
|
||||
for _, line := range lines {
|
||||
robot := ParseRobot(line)
|
||||
robots = append(robots, robot)
|
||||
}
|
||||
|
||||
// Define grid size
|
||||
gridWidth := 101
|
||||
gridHeight := 103
|
||||
|
||||
// Update robot positions for 100 seconds
|
||||
for i := 0; i < 6285; i++ {
|
||||
for j := range robots {
|
||||
robots[j].UpdatePosition(gridWidth, gridHeight)
|
||||
}
|
||||
}
|
||||
|
||||
DisplayGrid(robots, gridWidth, gridHeight)
|
||||
return 2
|
||||
}
|
||||
|
||||
// ParseRobot takes a line of input and converts it to a Robot struct
|
||||
func ParseRobot(line string) Robot {
|
||||
parts := strings.Split(line, " ")
|
||||
posParts := strings.Split(parts[0][2:], ",") // Extract p=x,y and split
|
||||
velParts := strings.Split(parts[1][2:], ",") // Extract v=x,y and split
|
||||
|
||||
px, _ := strconv.Atoi(posParts[0])
|
||||
py, _ := strconv.Atoi(posParts[1])
|
||||
vx, _ := strconv.Atoi(velParts[0])
|
||||
vy, _ := strconv.Atoi(velParts[1])
|
||||
|
||||
return Robot{px, py, vx, vy}
|
||||
}
|
||||
|
||||
// UpdatePosition updates the position of a robot, considering the wrap-around
|
||||
func (r *Robot) UpdatePosition(gridWidth, gridHeight int) {
|
||||
r.px = (r.px + r.vx + gridWidth) % gridWidth
|
||||
r.py = (r.py + r.vy + gridHeight) % gridHeight
|
||||
}
|
||||
|
||||
// CountRobotsInQuadrants counts the number of robots in each of the four quadrants
|
||||
func CountRobotsInQuadrants(robots []Robot, width, height int) (int, int, int, int) {
|
||||
midX := width / 2
|
||||
midY := height / 2
|
||||
|
||||
q1, q2, q3, q4 := 0, 0, 0, 0
|
||||
|
||||
for _, r := range robots {
|
||||
if r.px == midX || r.py == midY {
|
||||
// Skip robots on the middle line
|
||||
continue
|
||||
}
|
||||
if r.px < midX && r.py < midY {
|
||||
q1++ // Top-left quadrant
|
||||
} else if r.px > midX && r.py < midY {
|
||||
q2++ // Top-right quadrant
|
||||
} else if r.px < midX && r.py > midY {
|
||||
q3++ // Bottom-left quadrant
|
||||
} else if r.px > midX && r.py > midY {
|
||||
q4++ // Bottom-right quadrant
|
||||
}
|
||||
}
|
||||
|
||||
return q1, q2, q3, q4
|
||||
}
|
||||
|
||||
// CalculateSafetyFactor multiplies the number of robots in each quadrant
|
||||
func CalculateSafetyFactor(q1, q2, q3, q4 int) int {
|
||||
return q1 * q2 * q3 * q4
|
||||
}
|
||||
|
||||
// DisplayGrid displays the current state of the grid
|
||||
func DisplayGrid(robots []Robot, width, height int) {
|
||||
grid := make([][]rune, height)
|
||||
for i := range grid {
|
||||
grid[i] = make([]rune, width)
|
||||
for j := range grid[i] {
|
||||
grid[i][j] = '.'
|
||||
}
|
||||
}
|
||||
for _, r := range robots {
|
||||
grid[r.py][r.px] = '#'
|
||||
}
|
||||
for _, row := range grid {
|
||||
fmt.Println(string(row))
|
||||
}
|
||||
}
|
||||
|
||||
// FindEasterEgg determines the fewest number of seconds that must elapse for the robots to display the Easter egg
|
||||
func FindEasterEgg(robots []Robot, width, height int) int {
|
||||
smallestArea := width * height
|
||||
bestTime := 0
|
||||
for t := 6285; t < 6286; t++ { // Large upper limit to search
|
||||
// Update robot positions
|
||||
for i := range robots {
|
||||
robots[i].UpdatePosition(width, height)
|
||||
}
|
||||
// Calculate the bounding box of all robot positions
|
||||
minX, minY := width, height
|
||||
maxX, maxY := 0, 0
|
||||
for _, r := range robots {
|
||||
if r.px < minX {
|
||||
minX = r.px
|
||||
}
|
||||
if r.px > maxX {
|
||||
maxX = r.px
|
||||
}
|
||||
if r.py < minY {
|
||||
minY = r.py
|
||||
}
|
||||
if r.py > maxY {
|
||||
maxY = r.py
|
||||
}
|
||||
}
|
||||
|
||||
area := (maxX - minX + 1) * (maxY - minY + 1)
|
||||
if area < smallestArea {
|
||||
smallestArea = area
|
||||
bestTime = t + 1
|
||||
fmt.Printf("Time: %d\n", bestTime)
|
||||
DisplayGrid(robots, width, height)
|
||||
}
|
||||
}
|
||||
return bestTime
|
||||
}
|
||||
23
2024/gareth/day14/day14_test.go
Normal file
23
2024/gareth/day14/day14_test.go
Normal file
@@ -0,0 +1,23 @@
|
||||
package day14
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestPart1(t *testing.T) {
|
||||
r := Part1(`p=0,4 v=3,-3
|
||||
p=6,3 v=-1,-3
|
||||
p=10,3 v=-1,2
|
||||
p=2,0 v=2,-1
|
||||
p=0,0 v=1,3
|
||||
p=3,0 v=-2,-2
|
||||
p=7,6 v=-1,-3
|
||||
p=3,0 v=-1,-2
|
||||
p=9,3 v=2,3
|
||||
p=7,3 v=-1,2
|
||||
p=2,4 v=2,-3
|
||||
p=9,5 v=-3,-3`)
|
||||
assert.Equal(t, 12, r)
|
||||
}
|
||||
500
2024/gareth/day14/input.txt
Normal file
500
2024/gareth/day14/input.txt
Normal file
@@ -0,0 +1,500 @@
|
||||
p=38,76 v=-61,88
|
||||
p=28,22 v=-43,-40
|
||||
p=76,78 v=-98,87
|
||||
p=39,56 v=10,96
|
||||
p=38,0 v=79,-15
|
||||
p=6,44 v=-88,53
|
||||
p=40,80 v=-83,31
|
||||
p=11,2 v=28,-31
|
||||
p=41,91 v=-86,-48
|
||||
p=8,55 v=-81,95
|
||||
p=77,19 v=3,-90
|
||||
p=94,73 v=-59,42
|
||||
p=51,53 v=35,48
|
||||
p=12,52 v=72,6
|
||||
p=62,61 v=96,47
|
||||
p=78,62 v=47,-57
|
||||
p=39,54 v=53,50
|
||||
p=1,43 v=-64,-46
|
||||
p=9,21 v=28,-36
|
||||
p=92,79 v=67,-47
|
||||
p=6,15 v=-58,-48
|
||||
p=54,67 v=99,-38
|
||||
p=96,99 v=-55,30
|
||||
p=90,44 v=-10,-8
|
||||
p=23,84 v=20,77
|
||||
p=5,84 v=28,88
|
||||
p=55,20 v=-31,-36
|
||||
p=84,43 v=-37,-41
|
||||
p=12,75 v=-38,30
|
||||
p=39,2 v=-12,-29
|
||||
p=74,14 v=56,-81
|
||||
p=63,53 v=22,-53
|
||||
p=51,28 v=9,-90
|
||||
p=53,72 v=48,-61
|
||||
p=33,42 v=-43,23
|
||||
p=75,18 v=-89,-37
|
||||
p=38,83 v=27,38
|
||||
p=69,31 v=61,80
|
||||
p=73,3 v=-45,74
|
||||
p=39,29 v=92,17
|
||||
p=78,45 v=-23,-47
|
||||
p=48,59 v=-57,38
|
||||
p=2,41 v=-71,-93
|
||||
p=30,13 v=36,-82
|
||||
p=37,57 v=25,13
|
||||
p=51,73 v=56,-98
|
||||
p=76,78 v=38,91
|
||||
p=56,49 v=22,55
|
||||
p=34,47 v=10,84
|
||||
p=83,93 v=81,-16
|
||||
p=14,70 v=71,-50
|
||||
p=97,74 v=-4,70
|
||||
p=33,8 v=93,-35
|
||||
p=39,70 v=-2,19
|
||||
p=94,63 v=20,44
|
||||
p=86,4 v=-33,19
|
||||
p=17,67 v=26,44
|
||||
p=39,2 v=-70,-25
|
||||
p=47,56 v=-79,-55
|
||||
p=5,98 v=86,-75
|
||||
p=53,21 v=79,-89
|
||||
p=53,85 v=61,73
|
||||
p=46,32 v=66,54
|
||||
p=30,75 v=49,-73
|
||||
p=44,81 v=-61,-69
|
||||
p=82,66 v=-72,-6
|
||||
p=89,76 v=-13,98
|
||||
p=57,87 v=30,36
|
||||
p=12,41 v=59,-40
|
||||
p=36,56 v=10,-61
|
||||
p=60,80 v=48,39
|
||||
p=50,75 v=-44,42
|
||||
p=66,56 v=-93,-1
|
||||
p=57,96 v=83,-79
|
||||
p=98,88 v=-15,-16
|
||||
p=0,63 v=59,44
|
||||
p=90,27 v=29,-40
|
||||
p=21,60 v=-86,2
|
||||
p=85,13 v=11,61
|
||||
p=92,77 v=24,-34
|
||||
p=16,24 v=80,4
|
||||
p=47,8 v=-79,-49
|
||||
p=1,28 v=-82,-48
|
||||
p=80,55 v=6,-72
|
||||
p=60,94 v=-67,-15
|
||||
p=83,90 v=-98,78
|
||||
p=3,75 v=46,-66
|
||||
p=93,40 v=15,11
|
||||
p=52,37 v=48,7
|
||||
p=23,4 v=-47,25
|
||||
p=46,43 v=57,-98
|
||||
p=23,12 v=-98,-36
|
||||
p=11,42 v=-83,50
|
||||
p=80,33 v=25,54
|
||||
p=59,95 v=-1,36
|
||||
p=55,67 v=-44,-60
|
||||
p=90,80 v=83,-39
|
||||
p=57,61 v=-1,96
|
||||
p=51,79 v=31,39
|
||||
p=28,89 v=85,35
|
||||
p=12,98 v=28,-80
|
||||
p=25,61 v=-95,-50
|
||||
p=77,84 v=-37,78
|
||||
p=50,80 v=66,89
|
||||
p=93,32 v=-15,-45
|
||||
p=30,4 v=-96,-29
|
||||
p=81,95 v=14,-66
|
||||
p=23,3 v=42,-16
|
||||
p=33,69 v=-96,-10
|
||||
p=28,23 v=-43,68
|
||||
p=77,25 v=-45,-41
|
||||
p=27,96 v=-69,-32
|
||||
p=41,15 v=-53,-35
|
||||
p=66,81 v=-22,5
|
||||
p=5,15 v=13,-95
|
||||
p=88,1 v=-59,-26
|
||||
p=48,41 v=16,-19
|
||||
p=88,75 v=33,46
|
||||
p=21,9 v=-64,-86
|
||||
p=36,4 v=-16,-95
|
||||
p=68,22 v=-5,65
|
||||
p=8,43 v=-34,46
|
||||
p=71,68 v=-49,-59
|
||||
p=37,92 v=-48,-18
|
||||
p=59,43 v=-21,-10
|
||||
p=69,31 v=30,58
|
||||
p=90,77 v=46,-74
|
||||
p=42,42 v=-76,20
|
||||
p=58,34 v=78,55
|
||||
p=18,10 v=33,2
|
||||
p=23,92 v=45,-69
|
||||
p=23,45 v=-32,27
|
||||
p=63,50 v=39,-96
|
||||
p=8,72 v=-34,85
|
||||
p=22,102 v=-69,26
|
||||
p=73,14 v=-45,-38
|
||||
p=65,54 v=-51,68
|
||||
p=99,29 v=-16,67
|
||||
p=29,60 v=15,-19
|
||||
p=85,76 v=-54,80
|
||||
p=21,23 v=-3,-47
|
||||
p=9,37 v=94,-44
|
||||
p=99,77 v=48,80
|
||||
p=48,47 v=18,56
|
||||
p=26,61 v=36,-57
|
||||
p=80,58 v=56,90
|
||||
p=37,6 v=53,-90
|
||||
p=47,15 v=53,60
|
||||
p=4,79 v=70,52
|
||||
p=35,8 v=31,12
|
||||
p=18,8 v=25,-30
|
||||
p=80,38 v=33,45
|
||||
p=23,26 v=-69,61
|
||||
p=10,35 v=-78,-96
|
||||
p=53,17 v=48,-34
|
||||
p=24,45 v=72,-2
|
||||
p=65,75 v=-1,-38
|
||||
p=5,72 v=-49,39
|
||||
p=63,87 v=-27,-16
|
||||
p=0,46 v=-34,73
|
||||
p=14,46 v=55,-15
|
||||
p=28,70 v=45,92
|
||||
p=29,30 v=89,10
|
||||
p=98,31 v=-46,-89
|
||||
p=1,85 v=-77,82
|
||||
p=30,79 v=-43,28
|
||||
p=29,70 v=-81,65
|
||||
p=51,97 v=13,-25
|
||||
p=76,19 v=-23,18
|
||||
p=36,83 v=-17,91
|
||||
p=52,34 v=-39,-98
|
||||
p=35,46 v=-43,55
|
||||
p=97,13 v=-99,-26
|
||||
p=40,26 v=27,13
|
||||
p=18,38 v=89,57
|
||||
p=45,57 v=-79,-52
|
||||
p=86,76 v=-54,-64
|
||||
p=12,38 v=28,55
|
||||
p=6,56 v=-86,97
|
||||
p=85,100 v=-41,-22
|
||||
p=4,34 v=28,-95
|
||||
p=89,33 v=-4,-73
|
||||
p=82,20 v=-33,-15
|
||||
p=98,5 v=31,43
|
||||
p=85,81 v=73,88
|
||||
p=13,42 v=-90,-49
|
||||
p=93,60 v=-91,-64
|
||||
p=56,7 v=-5,64
|
||||
p=9,5 v=45,76
|
||||
p=61,4 v=74,86
|
||||
p=23,53 v=-7,3
|
||||
p=89,21 v=-38,-74
|
||||
p=13,44 v=-86,10
|
||||
p=96,62 v=-11,96
|
||||
p=5,98 v=-22,3
|
||||
p=26,26 v=-73,-93
|
||||
p=52,95 v=-5,42
|
||||
p=62,50 v=-57,-7
|
||||
p=11,2 v=41,-77
|
||||
p=23,73 v=-2,-97
|
||||
p=34,77 v=-47,-71
|
||||
p=91,58 v=99,43
|
||||
p=41,74 v=-53,42
|
||||
p=75,102 v=55,-81
|
||||
p=89,95 v=30,8
|
||||
p=76,28 v=-80,12
|
||||
p=82,27 v=-43,77
|
||||
p=62,63 v=-97,21
|
||||
p=94,73 v=-58,14
|
||||
p=13,35 v=-47,-46
|
||||
p=56,0 v=61,25
|
||||
p=94,39 v=11,8
|
||||
p=96,53 v=77,-53
|
||||
p=23,78 v=-43,-7
|
||||
p=24,51 v=-74,-86
|
||||
p=77,33 v=60,8
|
||||
p=84,71 v=-76,19
|
||||
p=78,96 v=82,3
|
||||
p=61,92 v=-58,-30
|
||||
p=9,75 v=94,-34
|
||||
p=89,13 v=7,-26
|
||||
p=16,67 v=-25,96
|
||||
p=95,43 v=-25,-54
|
||||
p=39,62 v=18,-40
|
||||
p=41,36 v=17,-65
|
||||
p=2,42 v=86,-10
|
||||
p=29,54 v=55,-2
|
||||
p=51,74 v=-44,92
|
||||
p=75,40 v=-36,-96
|
||||
p=60,15 v=-93,-84
|
||||
p=44,33 v=44,8
|
||||
p=88,51 v=85,-94
|
||||
p=26,60 v=43,62
|
||||
p=94,22 v=-81,-98
|
||||
p=4,50 v=-94,-96
|
||||
p=87,47 v=-55,3
|
||||
p=15,80 v=33,-14
|
||||
p=4,48 v=-24,-48
|
||||
p=57,36 v=-18,-98
|
||||
p=87,12 v=76,63
|
||||
p=53,17 v=-91,-81
|
||||
p=17,96 v=53,6
|
||||
p=91,40 v=95,-46
|
||||
p=23,28 v=-55,55
|
||||
p=81,7 v=-54,16
|
||||
p=62,102 v=-97,-77
|
||||
p=42,31 v=80,-41
|
||||
p=99,53 v=-72,57
|
||||
p=17,29 v=98,58
|
||||
p=24,57 v=84,-48
|
||||
p=98,101 v=-33,-30
|
||||
p=77,82 v=-36,-25
|
||||
p=44,8 v=83,18
|
||||
p=27,35 v=-27,16
|
||||
p=95,58 v=-29,52
|
||||
p=87,40 v=60,-91
|
||||
p=66,1 v=17,24
|
||||
p=17,11 v=63,21
|
||||
p=67,77 v=-23,-11
|
||||
p=91,30 v=-59,64
|
||||
p=22,34 v=7,84
|
||||
p=55,90 v=48,29
|
||||
p=45,45 v=31,50
|
||||
p=12,34 v=65,-86
|
||||
p=40,48 v=18,-1
|
||||
p=39,42 v=75,11
|
||||
p=28,27 v=63,-49
|
||||
p=93,44 v=-81,3
|
||||
p=8,78 v=-51,-15
|
||||
p=6,37 v=-51,-42
|
||||
p=73,89 v=-45,23
|
||||
p=2,80 v=-23,50
|
||||
p=93,37 v=55,-44
|
||||
p=16,52 v=-54,35
|
||||
p=15,17 v=-33,74
|
||||
p=84,37 v=-6,-48
|
||||
p=13,47 v=50,-48
|
||||
p=88,34 v=-79,-39
|
||||
p=16,68 v=50,94
|
||||
p=20,78 v=-99,29
|
||||
p=100,20 v=77,64
|
||||
p=79,2 v=-91,30
|
||||
p=52,0 v=-95,-86
|
||||
p=4,84 v=79,35
|
||||
p=13,74 v=19,-66
|
||||
p=57,55 v=-9,-63
|
||||
p=21,30 v=19,-94
|
||||
p=50,37 v=-66,4
|
||||
p=9,56 v=94,95
|
||||
p=91,59 v=55,-65
|
||||
p=77,15 v=34,-33
|
||||
p=5,100 v=81,-26
|
||||
p=26,96 v=-34,83
|
||||
p=36,64 v=-44,94
|
||||
p=37,65 v=-70,51
|
||||
p=74,6 v=25,-93
|
||||
p=33,78 v=-17,-48
|
||||
p=0,33 v=-6,-39
|
||||
p=3,55 v=-11,96
|
||||
p=32,19 v=-8,-33
|
||||
p=60,53 v=-5,-55
|
||||
p=75,62 v=56,45
|
||||
p=74,71 v=12,-66
|
||||
p=50,74 v=-53,91
|
||||
p=24,90 v=-19,-57
|
||||
p=58,53 v=31,5
|
||||
p=13,95 v=-33,20
|
||||
p=30,98 v=41,-70
|
||||
p=54,78 v=71,-43
|
||||
p=78,73 v=26,53
|
||||
p=66,30 v=-49,60
|
||||
p=81,87 v=-24,-15
|
||||
p=28,27 v=-31,11
|
||||
p=75,18 v=-89,10
|
||||
p=76,82 v=-89,-66
|
||||
p=44,65 v=-17,98
|
||||
p=17,42 v=-7,-5
|
||||
p=75,92 v=-54,32
|
||||
p=95,10 v=-28,-76
|
||||
p=20,36 v=-22,-62
|
||||
p=100,0 v=11,21
|
||||
p=37,39 v=5,-46
|
||||
p=80,50 v=-63,7
|
||||
p=77,28 v=-98,2
|
||||
p=61,41 v=-1,-40
|
||||
p=88,78 v=95,-17
|
||||
p=83,1 v=47,-30
|
||||
p=47,67 v=-30,-9
|
||||
p=14,81 v=-38,82
|
||||
p=40,97 v=-31,76
|
||||
p=76,27 v=37,-70
|
||||
p=25,73 v=80,35
|
||||
p=88,84 v=-33,77
|
||||
p=60,71 v=83,35
|
||||
p=14,93 v=-3,-25
|
||||
p=40,45 v=-35,4
|
||||
p=34,35 v=15,19
|
||||
p=87,100 v=90,-66
|
||||
p=20,90 v=-42,-68
|
||||
p=90,44 v=50,-52
|
||||
p=43,77 v=31,89
|
||||
p=99,81 v=33,-12
|
||||
p=28,35 v=58,-37
|
||||
p=37,52 v=57,6
|
||||
p=48,65 v=-66,23
|
||||
p=63,21 v=39,-35
|
||||
p=91,77 v=-15,-70
|
||||
p=27,28 v=93,-94
|
||||
p=18,61 v=-99,38
|
||||
p=56,36 v=-98,81
|
||||
p=90,75 v=-72,-67
|
||||
p=86,21 v=-13,-46
|
||||
p=20,88 v=89,-74
|
||||
p=17,41 v=-82,-98
|
||||
p=28,65 v=45,-72
|
||||
p=85,15 v=35,41
|
||||
p=39,43 v=-2,-36
|
||||
p=93,72 v=-94,91
|
||||
p=90,73 v=-64,77
|
||||
p=83,43 v=-94,-99
|
||||
p=50,59 v=-49,51
|
||||
p=58,25 v=13,-36
|
||||
p=25,102 v=-44,-54
|
||||
p=100,86 v=16,-23
|
||||
p=45,42 v=21,-90
|
||||
p=9,29 v=-13,18
|
||||
p=24,41 v=1,-47
|
||||
p=69,33 v=-58,55
|
||||
p=80,52 v=52,-2
|
||||
p=82,77 v=82,-11
|
||||
p=86,78 v=-41,-69
|
||||
p=89,58 v=69,-13
|
||||
p=12,91 v=-55,-65
|
||||
p=69,40 v=-93,59
|
||||
p=8,26 v=2,19
|
||||
p=21,47 v=19,3
|
||||
p=38,20 v=25,-83
|
||||
p=20,99 v=54,31
|
||||
p=20,74 v=-14,-30
|
||||
p=51,83 v=-40,24
|
||||
p=61,30 v=-27,-94
|
||||
p=84,19 v=-28,69
|
||||
p=28,33 v=-65,3
|
||||
p=58,91 v=-93,-18
|
||||
p=33,78 v=22,92
|
||||
p=86,53 v=63,-43
|
||||
p=53,79 v=-26,-42
|
||||
p=83,16 v=94,56
|
||||
p=21,0 v=-64,-35
|
||||
p=48,80 v=-97,79
|
||||
p=62,18 v=29,71
|
||||
p=17,13 v=-69,-36
|
||||
p=1,93 v=19,75
|
||||
p=7,75 v=41,93
|
||||
p=65,61 v=-45,65
|
||||
p=56,71 v=92,-63
|
||||
p=71,102 v=-53,-21
|
||||
p=64,79 v=96,49
|
||||
p=40,13 v=-74,-84
|
||||
p=28,71 v=93,91
|
||||
p=43,68 v=-39,-6
|
||||
p=10,40 v=63,55
|
||||
p=73,0 v=-97,-82
|
||||
p=26,38 v=85,-27
|
||||
p=27,94 v=36,-79
|
||||
p=1,99 v=-82,-30
|
||||
p=66,96 v=-23,31
|
||||
p=78,21 v=96,16
|
||||
p=10,93 v=-51,-76
|
||||
p=76,87 v=78,80
|
||||
p=13,20 v=-38,68
|
||||
p=31,42 v=-43,5
|
||||
p=56,10 v=-53,-33
|
||||
p=76,61 v=34,-4
|
||||
p=73,2 v=-36,74
|
||||
p=93,83 v=15,-19
|
||||
p=76,50 v=20,-51
|
||||
p=27,53 v=36,-51
|
||||
p=93,97 v=50,72
|
||||
p=59,22 v=87,21
|
||||
p=95,22 v=-29,66
|
||||
p=56,35 v=79,10
|
||||
p=60,38 v=17,-94
|
||||
p=67,41 v=-5,6
|
||||
p=97,71 v=-73,35
|
||||
p=26,10 v=-73,74
|
||||
p=74,71 v=5,64
|
||||
p=36,91 v=84,-17
|
||||
p=38,91 v=67,33
|
||||
p=19,64 v=41,-9
|
||||
p=89,15 v=-59,66
|
||||
p=5,94 v=94,-27
|
||||
p=92,21 v=7,-87
|
||||
p=87,64 v=-28,-5
|
||||
p=22,6 v=-95,25
|
||||
p=59,42 v=-51,-7
|
||||
p=50,95 v=88,29
|
||||
p=59,91 v=73,-21
|
||||
p=52,42 v=-75,56
|
||||
p=10,39 v=-30,7
|
||||
p=88,79 v=29,-62
|
||||
p=31,89 v=-21,-82
|
||||
p=43,60 v=4,52
|
||||
p=2,76 v=-68,-15
|
||||
p=13,71 v=-38,97
|
||||
p=93,38 v=1,-95
|
||||
p=53,99 v=10,16
|
||||
p=94,72 v=-98,30
|
||||
p=1,3 v=37,-82
|
||||
p=68,78 v=55,18
|
||||
p=1,78 v=42,-7
|
||||
p=80,84 v=52,-26
|
||||
p=75,46 v=-87,-20
|
||||
p=71,27 v=95,-39
|
||||
p=90,18 v=73,11
|
||||
p=99,3 v=62,52
|
||||
p=39,88 v=-80,-93
|
||||
p=85,32 v=69,-40
|
||||
p=72,23 v=-28,-75
|
||||
p=22,59 v=98,-7
|
||||
p=69,76 v=12,93
|
||||
p=56,59 v=30,50
|
||||
p=80,92 v=-49,-80
|
||||
p=4,40 v=-77,-50
|
||||
p=90,60 v=40,-28
|
||||
p=6,79 v=9,56
|
||||
p=63,47 v=57,-59
|
||||
p=33,62 v=22,37
|
||||
p=74,27 v=78,70
|
||||
p=26,101 v=-43,-49
|
||||
p=1,24 v=-29,-38
|
||||
p=73,90 v=56,79
|
||||
p=5,90 v=-20,-75
|
||||
p=16,35 v=94,8
|
||||
p=96,93 v=4,58
|
||||
p=61,43 v=4,4
|
||||
p=13,68 v=76,94
|
||||
p=5,29 v=86,-95
|
||||
p=32,81 v=39,-85
|
||||
p=94,42 v=-37,55
|
||||
p=80,20 v=60,22
|
||||
p=43,94 v=57,-19
|
||||
p=93,4 v=51,-26
|
||||
p=12,4 v=62,-58
|
||||
p=87,74 v=-98,-64
|
||||
p=81,41 v=-26,69
|
||||
p=30,54 v=-30,-13
|
||||
p=73,4 v=21,-30
|
||||
p=68,35 v=-49,-44
|
||||
p=47,2 v=19,-70
|
||||
p=92,100 v=33,79
|
||||
p=81,11 v=73,-83
|
||||
p=46,75 v=-62,-69
|
||||
p=48,56 v=-13,-56
|
||||
p=7,84 v=15,30
|
||||
p=92,10 v=28,69
|
||||
p=15,31 v=-87,61
|
||||
p=95,0 v=33,79
|
||||
p=3,61 v=-37,-50
|
||||
p=73,95 v=96,20
|
||||
@@ -1,7 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"aoc2024/day10"
|
||||
"aoc2024/day14"
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
|
||||
func main() {
|
||||
start := time.Now()
|
||||
data, _ := os.ReadFile("day10/input.txt")
|
||||
fmt.Printf("part 1: %d\n", day10.Part1(string(data)))
|
||||
fmt.Printf("part 2: %d\n", day10.Part2(string(data)))
|
||||
data, _ := os.ReadFile("day14/input.txt")
|
||||
fmt.Printf("part 1: %d\n", day14.Part1(string(data)))
|
||||
fmt.Printf("part 2: %d\n", day14.Part2(string(data)))
|
||||
elapsed := time.Since(start)
|
||||
fmt.Printf("Execution time: %s\n", elapsed)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user