编辑代码

package main
import "fmt"

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}


func main () {
    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
    var n, T, H int
	fmt.Scan(&n, &T, &H)

	t := make([]int, n)
	h := make([]int, n)
	a := make([]int, n)

	for i := 0; i < n; i++ {
		fmt.Scan(&t[i], &h[i], &a[i])
	}

	dp := make([][][]int, n+1)
	for i := range dp {
		dp[i] = make([][]int, T+1)
		for j := range dp[i] {
			dp[i][j] = make([]int, H+1)
		}
	}

	for i := 1; i <= n; i++ {
		for j := 0; j <= T; j++ {
			for k := 0; k <= H; k++ {
				dp[i][j][k] = dp[i-1][j][k]
				if j >= t[i-1] && k >= h[i-1] {
					dp[i][j][k] = max(dp[i][j][k], dp[i-1][j-t[i-1]][k-h[i-1]]+a[i-1])
				}
			}
		}
	}

	maxHappiness := 0
	for j := 0; j <= T; j++ {
		for k := 0; k <= H; k++ {
			maxHappiness = max(maxHappiness, dp[n][j][k])
		}
	}

	fmt.Println(maxHappiness)
}