package main

// func maxInt(x, y int) int {
// 	if x > y {
// 		return x
// 	}
// 	return y
// }

// DP? try to understand
func rob(nums []int) int {
	odd, even := 0, 0
	for i := 0; i < len(nums); i++ {
		// if idx is odd
		if i&1 == 1 {
			// rob this store (+nums[i]), or not (even)
			odd = maxInt(odd+nums[i], even)
		} else {
			// rob this store (+nums[i]), or not (odd)
			even = maxInt(even+nums[i], odd)
		}
	}
	return maxInt(odd, even)
}

// func main() {
// 	arr := []int{1, 2, 435, 6543, 31, 43, 543, 21, 532}
// 	fmt.Println(rob(arr))
// }