結果
問題 |
No.2741 Balanced Choice
|
ユーザー |
![]() |
提出日時 | 2025-04-20 18:27:23 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 112 ms / 2,000 ms |
コード長 | 580 bytes |
コンパイル時間 | 12,596 ms |
コンパイル使用メモリ | 254,128 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-04-20 18:27:38 |
合計ジャッジ時間 | 14,012 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 10 |
ソースコード
package main import . "fmt" func main() { var n,w,d int Scan(&n,&w,&d) dp := make([][]int, 2) for i := range dp { dp[i] = make([]int, w+1) for j := range dp[i] { dp[i][j] = -1e9 } } dp[0][0] = 0 dp[1][0] = 0 for i := 0; i < n; i++ { var ti,wi,vi int Scan(&ti,&wi,&vi) tmp := dp[ti] for x := w-wi; x >= 0; x-- { tmp[x+wi] = max(tmp[x+wi],tmp[x]+vi) } } var ans int for w0 := 0; w0 <= w; w0++ { for w1 := 0; w1 <= w; w1++ { if w0+w1 > w || max(w1-w0,w0-w1) > d { continue } ans = max(ans, dp[0][w0]+dp[1][w1]) } } Println(ans) }