fmt.Println(seeds)
fmt.Println(almanac)
- minLoc := utils.MaxInt
+ minLoc := int(utils.MaxInt)
for _, seed := range seeds {
soil := lookup_dest(seed, almanac.seed2soil)
fert := lookup_dest(soil, almanac.soil2fert)
func Part2(input string) int {
seedsmap, almanac, _ := parseInput2(input)
- fmt.Println(seedsmap)
- fmt.Println(almanac)
- minLocMap := Map{dest_range_start: utils.MaxInt}
- for _, x := range almanac.humid2loc {
- if x.dest_range_start< minLocMap.dest_range_start {
- minLocMap = x
- }
- }
- fmt.Println(minLocMap.dest_range_start)
- for i:=minLocMap.src_range_start;i<minLocMap.src_range_start+minLocMap.range_len;i++ {
- temp := lookup_src(i, almanac.temp2humid)
- fmt.Println(temp)
+ for i:=0;i<utils.MaxInt;i++{
+ humid := lookup_src(int(i), almanac.humid2loc)
+ temp := lookup_src(humid, almanac.temp2humid)
+ light := lookup_src(temp, almanac.light2temp)
+ water := lookup_src(light, almanac.water2light)
+ fert := lookup_src(water, almanac.fert2water)
+ soil := lookup_src(fert, almanac.soil2fert)
+ seed := lookup_src(soil, almanac.seed2soil)
+
+ for _, seedmap := range seedsmap {
+ if seed >= seedmap.seed && seed < seedmap.seed+seedmap.range_len {
+ return i
+ }
+ }
}
-
-// minSeedMap := SeedMap{}
-// minLoc := utils.MaxInt
-// for _, seedmap := range seedsmap {
-// for _, i := range []int{seedmap.seed, seedmap.seed+seedmap.range_len} {
-// soil := lookup_dest(i, almanac.seed2soil)
-// fert := lookup_dest(soil, almanac.soil2fert)
-// water := lookup_dest(fert, almanac.fert2water)
-// light := lookup_dest(water, almanac.water2light)
-// temp := lookup_dest(light, almanac.light2temp)
-// humid := lookup_dest(temp, almanac.temp2humid)
-// loc := lookup_dest(humid, almanac.humid2loc)
-// if loc < minLoc {
-// minSeedMap = seedmap
-// minLoc = loc
-// }
-// }
-// }
-//
-// fmt.Println(minSeedMap)
-// minLoc = utils.MaxInt
-// for i:=minSeedMap.seed;i<minSeedMap.seed+minSeedMap.range_len;i++ {
-// soil := lookup_dest(i, almanac.seed2soil)
-// fert := lookup_dest(soil, almanac.soil2fert)
-// water := lookup_dest(fert, almanac.fert2water)
-// light := lookup_dest(water, almanac.water2light)
-// temp := lookup_dest(light, almanac.light2temp)
-// humid := lookup_dest(temp, almanac.temp2humid)
-// loc := lookup_dest(humid, almanac.humid2loc)
-// if loc < minLoc {
-// minLoc = loc
-// }
-// }
return -1
}
seedLine := string(lines[0])
tokens := strings.Fields(seedLine)
for _, token := range tokens[1:] {
- seeds = append(seeds, utils.MustAtoi(token))
+ seeds = append(seeds, int(utils.MustAtoi(token)))
}
blocks := strings.Split(input, "\n\n")
seedLine := string(lines[0])
tokens := strings.Fields(seedLine)
for i:=1;i<len(tokens);i=i+2 {
- seedStart := utils.MustAtoi(tokens[i])
- seedRange := utils.MustAtoi(tokens[i+1])
+ seedStart := int(utils.MustAtoi(tokens[i]))
+ seedRange := int(utils.MustAtoi(tokens[i+1]))
seeds = append(seeds, SeedMap{seedStart, seedRange})
}
var out []Map
for _, line := range input {
tokens := strings.Fields(line)
- out = append(out, Map{utils.MustAtoi(tokens[0]), utils.MustAtoi(tokens[1]),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
}
\ No newline at end of file