Half assed start at seven

This commit is contained in:
Maximilian Friedersdorff 2025-12-07 20:27:32 +00:00
parent 14a16819c5
commit 7d8df0db21

70
2025/seven/seven.go Normal file
View file

@ -0,0 +1,70 @@
package main
import (
"bufio"
"errors"
"fmt"
"os"
"strconv"
"strings"
)
func check(err error) {
if err != nil {
panic(err)
}
}
type beam int
type beams struct {
b map[beam]struct{}
}
func (b *beams) add(pos beam) {
b.b[pos] = {}
}
func main() {
file, err := os.Open("five.txt")
check(err)
defer file.Close()
scanner := bufio.NewScanner(file)
scanner.Scan()
text := scanner.Text()
start := strings.IndexRune(text, 'S')
beams.add(beam(start))
for scanner.Scan() {
}
db, err := parse(scanner)
check(err)
nRaw := len(db.ranges)
for {
before, after := db.collapse()
fmt.Printf("Collapsed %d to %d ranges\n", before, after)
if before == after {
break
}
}
potentialNFresh := 0
for _, r := range db.ranges {
potentialNFresh += r.nInRange()
}
fmt.Printf(
"N raw %d and consolidated %d. %d potential fresh ingredients.\n",
nRaw,
len(db.ranges),
potentialNFresh,
)
}