結果
| 問題 |
No.1858 Gorgeous Knapsack
|
| ユーザー |
|
| 提出日時 | 2022-03-14 16:26:51 |
| 言語 | Scala(Beta) (3.6.2) |
| 結果 |
AC
|
| 実行時間 | 1,049 ms / 2,000 ms |
| コード長 | 676 bytes |
| コンパイル時間 | 13,756 ms |
| コンパイル使用メモリ | 260,508 KB |
| 実行使用メモリ | 65,572 KB |
| 最終ジャッジ日時 | 2024-09-20 03:30:53 |
| 合計ジャッジ時間 | 54,258 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 37 |
ソースコード
import java.io.PrintWriter
import scala.collection.mutable.*
import scala.io.StdIn.*
import scala.util.chaining.*
import scala.math.*
import scala.reflect.ClassTag
import scala.util.*
import scala.annotation.tailrec
import scala.collection.mutable
@main def main() =
val Array(n, m) = readLine().split(' ').map(_.toInt)
val jewels = Array.fill(n){
val Array(v, w) = readLine().split(' ').map(_.toInt)
v -> w
}
val memo = Array.fill(m + 1){0L}
var result = 0L
for (v, w) <- jewels.sortBy(_._1)(Ordering[Int].reverse) do
for i <- m to w by -1 do
memo(i) = max(memo(i), memo(i - w) + v)
result = max(result, v * memo.last)
println(result)