提出 #43974852
ソースコード 拡げる
use proconio::input;
use std::iter;
fn main() {
input! {
(n, w): (usize, usize),
input: [(usize, usize); n],
}
let res = input.iter().fold(
iter::once(Some(0))
.chain(iter::repeat(None).take(w))
.collect::<Vec<_>>(),
|vec, (w, v)| {
vec.iter()
.enumerate()
.map(|(i, &acc)| {
let v1 = vec.get(i - *w).cloned().flatten().map(|v1| v1 + *v);
[v1, acc].iter().flatten().cloned().max()
})
.collect::<Vec<_>>()
},
);
println!("{}", res.iter().flatten().cloned().max().unwrap());
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Knapsack 1 |
| ユーザ | toyboot4e |
| 言語 | Rust (1.42.0) |
| 得点 | 100 |
| コード長 | 704 Byte |
| 結果 | AC |
| 実行時間 | 59 ms |
| メモリ | 5208 KiB |
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 0_00 | AC | 5 ms | 2144 KiB |
| 0_01 | AC | 1 ms | 2068 KiB |
| 0_02 | AC | 2 ms | 2036 KiB |
| 1_00 | AC | 5 ms | 5116 KiB |
| 1_01 | AC | 42 ms | 5072 KiB |
| 1_02 | AC | 48 ms | 4992 KiB |
| 1_03 | AC | 53 ms | 4992 KiB |
| 1_04 | AC | 58 ms | 5132 KiB |
| 1_05 | AC | 57 ms | 5168 KiB |
| 1_06 | AC | 59 ms | 5148 KiB |
| 1_07 | AC | 54 ms | 5064 KiB |
| 1_08 | AC | 51 ms | 5188 KiB |
| 1_09 | AC | 47 ms | 5208 KiB |