| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package main
- import (
- "fmt"
- "os"
- "strconv"
- "strings"
- )
- func is_kinvalid(id string, k int) bool{
- size_idstr := len(id)
- if (size_idstr % k) != 0 {
- return false
- }
- l:= size_idstr / k
-
- for i:= 0; i+l < size_idstr ; i+=l {
- if id[i : i+l] != id[i+l : i+2*l]{
- return false
- }
- }
- return true
- }
- func is_invalid(id int) bool {
- idstr := strconv.Itoa(id)
- size_idstr := len(idstr)
- for k:=2; k <= size_idstr; k++{
- if is_kinvalid(idstr, k) {
- return true
- }
- }
- return false
- }
- func count_invalids(lb, ub int) int{
- res := 0
- for i:=lb; i <= ub; i++ {
- if is_invalid(i) {
- res += i
- }
- }
- return res
- }
- func main() {
- fmt.Println("Advent of Code 2025 - Day 2 - Part 2")
- f, _ := os.ReadFile("2/input")
- l := strings.Split(string(f), ",")
- var ranges []string
- var lower_bound, upper_bound int
- res:=0
- for _,value := range l {
- ranges = strings.Split(value,"-")
- lower_bound, _ = strconv.Atoi(ranges[0])
- upper_bound, _ = strconv.Atoi(ranges[1])
- res += count_invalids(lower_bound, upper_bound)
- }
- fmt.Println(res)
- }
|