package main

import (
	"AoC2020/helper"
	"fmt"
	"os"
)

var pointer int
var band []int

func main() {
	args := os.Args[1:]
	input, err := helper.GetInput(args[0])
	if err != nil {
		fmt.Println(err)
	}
	numbers, err := helper.MapToNumber(input)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Printf("%v \n",numbers)
	band = numbers
	breaker := part1(25)
	fmt.Println(breaker)
	fmt.Print(part2(breaker))
}

func part1(preambleLen int) int{
	pointer = preambleLen
	isValid := true
	for isValid {
		_,_,err := helper.FindAddendsForSum(band[pointer-preambleLen:pointer],band[pointer])
		if err != nil {
			return band[pointer]
			isValid = false
		}
		pointer++
	}
	return 0
}

func part2(breaker int) int{
	for p1 := 0; p1 < len(band); p1++ {
		for p2 := p1 + 1; p2 < len(band); p2++ {
			array := make([]int, len(band[p1:p2]))
			copy(array,band[p1:p2])
			sumArray := 0
			for _,value := range array {
				sumArray += value
			}
			if sumArray == breaker {
				fmt.Printf("%v \n" ,array)
				var max int
				var min int
				for i, val := range array {
					if i==0 || val < min {
						min = val
					}
					if i==0 || val > max {
						max = val
					}
				}
				fmt.Printf("%d , %d \n" ,min, max)
				return min + max
			}
		}
	}
	return 0
}

func run(preambleLen int)  {

}
