Solve #1
This commit is contained in:
parent
fc9342dd3d
commit
4f4e546fa6
2 changed files with 64 additions and 0 deletions
3
2025/go.mod
Normal file
3
2025/go.mod
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
module forgejo.gwairfelin.com/aoc
|
||||
|
||||
go 1.25.4
|
||||
61
2025/one.go
Normal file
61
2025/one.go
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func mod(a int, b int) int {
|
||||
return (a%b + b) % b
|
||||
}
|
||||
|
||||
func One() {
|
||||
cur := 50
|
||||
n_zeroes := 0
|
||||
|
||||
file, err := os.Open("one.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
|
||||
for scanner.Scan() {
|
||||
text := scanner.Text()
|
||||
|
||||
num, err := strconv.Atoi(text[1:])
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
var next_pre_modulo int = 0
|
||||
if text[0] == 'R' {
|
||||
next_pre_modulo = cur + num
|
||||
n_zeroes += next_pre_modulo / 100
|
||||
} else {
|
||||
next_pre_modulo = cur - num
|
||||
if next_pre_modulo <= 0 {
|
||||
extra := (next_pre_modulo / -100)
|
||||
|
||||
// Omg you sneaky fuck! We only add one if we didn't start on
|
||||
// 0 already.
|
||||
if cur != 0 {
|
||||
extra += 1
|
||||
}
|
||||
|
||||
n_zeroes += extra
|
||||
}
|
||||
}
|
||||
|
||||
cur = mod(next_pre_modulo, 100)
|
||||
log.Printf("Next pre mod: %d, post mod: %d, n zeroes: %d", next_pre_modulo, cur, n_zeroes)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func main() {
|
||||
One()
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue