Submission #35214352
Source Code Expand
use proconio::input; macro_rules! chmax { ($max_v: expr, $v: expr) => { if $v > $max_v { $max_v = $v; true } else { false } }; } fn main() { input! { n: usize, w: usize, wv: [(usize, usize); n], }; let w_1 = wv[0].0; let mut dp = vec![vec![vec![0_usize; 4 * n + 1]; n + 1]; n + 1]; for (i, (w_i, v_i)) in wv.iter().copied().enumerate() { for j in 0..n { for k in 0..4 * n { chmax!(dp[i + 1][j][k], dp[i][j][k]); if (j + 1) * w_1 + k + (w_i - w_1) <= w && k + (w_i - w_1) <= 4 * n { chmax!(dp[i + 1][j + 1][k + (w_i - w_1)], dp[i][j][k] + v_i); } } } } let mut ans = 0_usize; for j in 0..=n { for k in 0..4 * n { ans = ans.max(dp[n][j][k]); } } println!("{}", ans); }
Submission Info
Submission Time | |
---|---|
Task | D - Simple Knapsack |
User | bouzuya |
Language | Rust (1.42.0) |
Score | 400 |
Code Size | 937 Byte |
Status | AC |
Exec Time | 53 ms |
Memory | 34284 KiB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0, example1, example2, example3 |
All | antigreedy0, antigreedy1, antigreedy2, example0, example1, example2, example3, quarter0, quarter1, quarter2, rand0, rand1, rand2, smallw0, smallw1, smallw2 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
antigreedy0 | AC | 53 ms | 34192 KiB |
antigreedy1 | AC | 50 ms | 34148 KiB |
antigreedy2 | AC | 41 ms | 34152 KiB |
example0 | AC | 2 ms | 2196 KiB |
example1 | AC | 2 ms | 1960 KiB |
example2 | AC | 2 ms | 2140 KiB |
example3 | AC | 2 ms | 1984 KiB |
quarter0 | AC | 50 ms | 34196 KiB |
quarter1 | AC | 42 ms | 34220 KiB |
quarter2 | AC | 42 ms | 34124 KiB |
rand0 | AC | 2 ms | 2172 KiB |
rand1 | AC | 11 ms | 6336 KiB |
rand2 | AC | 2 ms | 2488 KiB |
smallw0 | AC | 39 ms | 34284 KiB |
smallw1 | AC | 40 ms | 34188 KiB |
smallw2 | AC | 39 ms | 34196 KiB |