package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param v int整型 
 * @param n int整型 
 * @param nums int整型二维数组 
 * @return int整型一维数组
*/
func knapsack( v int ,  n int ,  nums [][]int ) []int {
    dp,dp1 := make([]int, v + 1),  make([]int, v + 1)
    for i := 1; i <= v; i++ {
        max, max1 := 0, 0
        for j := 1; j <= len(nums);j++ {
            if i >= nums[j - 1][0] {
                if max < dp[i - nums[j - 1][0]] + nums[j - 1][1] {
                    max = dp[i - nums[j - 1][0]] + nums[j - 1][1]

                }
                if i - nums[j - 1][0] != 0 && dp1[i - nums[j - 1][0]] == 0 {
                    continue
                }
                if max1 < dp1[i - nums[j - 1][0]] + nums[j - 1][1] {
                    max1 = dp1[i - nums[j - 1][0]] + nums[j - 1][1]
                }
            } 
        }
        dp[i], dp1[i] = max, max1
    }
    return []int{dp[v], dp1[v]}
}