use std::collections::HashMap;
fn rec (i: i32, j: i32) -> i32{
let n = 4;
let w = [
[2,3],
[1,2],
[3,4],
[2,2]
];
let res;
if(i == n) {
res = 0;
} else if (j < w[i as usize][0]) {
res = rec(i + 1, j);
} else {
res = std::cmp::max(rec(i + 1, j), rec(i + 1, j - w[i as usize][0]) + w[i as usize][1]);
}
return res;
}
fn main() {
let W = 5;
let res = rec(0, W);
println!("{}", res);
}
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.52s
Running `target/debug/basic`
7
hashmapではなく、多次元配列にする必要あり