move unit64 back to int

This commit is contained in:
2023-12-06 13:51:32 +00:00
parent 204e001459
commit 245e7858fa

View File

@@ -12,9 +12,9 @@ import (
) )
type Map struct { type Map struct {
dest_range_start uint64 dest_range_start int
src_range_start uint64 src_range_start int
range_len uint64 range_len int
} }
type Almanac struct { type Almanac struct {
@@ -28,16 +28,16 @@ type Almanac struct {
} }
type SeedMap struct { type SeedMap struct {
seed uint64 seed int
range_len uint64 range_len int
} }
func Part1(input string) uint64 { func Part1(input string) int {
seeds, almanac, _ := parseInput1(input) seeds, almanac, _ := parseInput1(input)
fmt.Println(seeds) fmt.Println(seeds)
fmt.Println(almanac) fmt.Println(almanac)
minLoc := uint64(utils.MaxInt) minLoc := int(utils.MaxInt)
for _, seed := range seeds { for _, seed := range seeds {
soil := lookup_dest(seed, almanac.seed2soil) soil := lookup_dest(seed, almanac.seed2soil)
fert := lookup_dest(soil, almanac.soil2fert) fert := lookup_dest(soil, almanac.soil2fert)
@@ -59,7 +59,7 @@ func Part2(input string) int {
seedsmap, almanac, _ := parseInput2(input) seedsmap, almanac, _ := parseInput2(input)
for i:=0;i<utils.MaxInt;i++{ for i:=0;i<utils.MaxInt;i++{
humid := lookup_src(uint64(i), almanac.humid2loc) humid := lookup_src(int(i), almanac.humid2loc)
temp := lookup_src(humid, almanac.temp2humid) temp := lookup_src(humid, almanac.temp2humid)
light := lookup_src(temp, almanac.light2temp) light := lookup_src(temp, almanac.light2temp)
water := lookup_src(light, almanac.water2light) water := lookup_src(light, almanac.water2light)
@@ -76,7 +76,7 @@ func Part2(input string) int {
return -1 return -1
} }
func lookup_dest(entity uint64, data []Map) uint64 { func lookup_dest(entity int, data []Map) int {
for _, dataMap := range data { for _, dataMap := range data {
if entity >= dataMap.src_range_start && entity <= dataMap.src_range_start + dataMap.range_len { if entity >= dataMap.src_range_start && entity <= dataMap.src_range_start + dataMap.range_len {
return dataMap.dest_range_start + entity - dataMap.src_range_start return dataMap.dest_range_start + entity - dataMap.src_range_start
@@ -85,7 +85,7 @@ func lookup_dest(entity uint64, data []Map) uint64 {
return entity return entity
} }
func lookup_src(entity uint64, data []Map) uint64 { func lookup_src(entity int, data []Map) int {
for _, dataMap := range data { for _, dataMap := range data {
if entity >= dataMap.dest_range_start && entity <= dataMap.dest_range_start + dataMap.range_len { if entity >= dataMap.dest_range_start && entity <= dataMap.dest_range_start + dataMap.range_len {
return dataMap.src_range_start + entity - dataMap.dest_range_start return dataMap.src_range_start + entity - dataMap.dest_range_start
@@ -94,16 +94,16 @@ func lookup_src(entity uint64, data []Map) uint64 {
return entity return entity
} }
func parseInput1(input string) ([]uint64, Almanac, error) { func parseInput1(input string) ([]int, Almanac, error) {
var almanac Almanac var almanac Almanac
var seeds []uint64 var seeds []int
lines := strings.Split(input, "\n") lines := strings.Split(input, "\n")
seedLine := string(lines[0]) seedLine := string(lines[0])
tokens := strings.Fields(seedLine) tokens := strings.Fields(seedLine)
for _, token := range tokens[1:] { for _, token := range tokens[1:] {
seeds = append(seeds, uint64(utils.MustAtoi(token))) seeds = append(seeds, int(utils.MustAtoi(token)))
} }
blocks := strings.Split(input, "\n\n") blocks := strings.Split(input, "\n\n")
@@ -140,8 +140,8 @@ func parseInput2(input string) ([]SeedMap, Almanac, error) {
seedLine := string(lines[0]) seedLine := string(lines[0])
tokens := strings.Fields(seedLine) tokens := strings.Fields(seedLine)
for i:=1;i<len(tokens);i=i+2 { for i:=1;i<len(tokens);i=i+2 {
seedStart := uint64(utils.MustAtoi(tokens[i])) seedStart := int(utils.MustAtoi(tokens[i]))
seedRange := uint64(utils.MustAtoi(tokens[i+1])) seedRange := int(utils.MustAtoi(tokens[i+1]))
seeds = append(seeds, SeedMap{seedStart, seedRange}) seeds = append(seeds, SeedMap{seedStart, seedRange})
} }
@@ -174,7 +174,7 @@ func getMap(input []string) []Map {
var out []Map var out []Map
for _, line := range input { for _, line := range input {
tokens := strings.Fields(line) tokens := strings.Fields(line)
out = append(out, Map{uint64(utils.MustAtoi(tokens[0])), uint64(utils.MustAtoi(tokens[1])),uint64(utils.MustAtoi(tokens[2]))}) out = append(out, Map{int(utils.MustAtoi(tokens[0])), int(utils.MustAtoi(tokens[1])),int(utils.MustAtoi(tokens[2]))})
} }
return out return out
} }