Submission #43029354


Source Code Expand

use proconio::input;

fn main() {
    input! {
        n: usize,
        mut wsv: [(usize, usize, usize); n],
    }

    wsv.sort_by(|&(w1, s1, v1), &(w2, s2, v2)| {
        let (w1, s1, _) = (w1 as i64, s1 as i64, v1 as i64);
        let (w2, s2, _) = (w2 as i64, s2 as i64, v2 as i64);
        s2.min(s1 - w2).cmp(&s1.min(s2 - w1))
    });

    let max_j = 10_000 * 2;
    let mut dp = vec![0_usize; max_j + 1];
    for (w, s, v) in wsv {
        let mut next = vec![0_usize; max_j + 1];
        for j in 0..=max_j {
            next[j] = next[j].max(dp[j]);
            if j <= s {
                next[j + w] = next[j + w].max(dp[j] + v);
            }
        }
        dp = next;
    }

    let ans = dp.iter().copied().max().unwrap();
    println!("{}", ans);
}

Submission Info

Submission Time
Task X - Tower
User bouzuya
Language Rust (1.42.0)
Score 100
Code Size 769 Byte
Status AC
Exec Time 45 ms
Memory 2372 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 25
Set Name Test Cases
All 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18, 1_19, 1_20
Case Name Status Exec Time Memory
0_00 AC 8 ms 2136 KiB
0_01 AC 2 ms 2260 KiB
0_02 AC 3 ms 2284 KiB
0_03 AC 2 ms 2288 KiB
1_00 AC 2 ms 2232 KiB
1_01 AC 45 ms 2316 KiB
1_02 AC 29 ms 2332 KiB
1_03 AC 36 ms 2176 KiB
1_04 AC 31 ms 2296 KiB
1_05 AC 35 ms 2224 KiB
1_06 AC 31 ms 2196 KiB
1_07 AC 33 ms 2372 KiB
1_08 AC 30 ms 2312 KiB
1_09 AC 29 ms 2224 KiB
1_10 AC 33 ms 2340 KiB
1_11 AC 37 ms 2244 KiB
1_12 AC 39 ms 2216 KiB
1_13 AC 38 ms 2256 KiB
1_14 AC 39 ms 2244 KiB
1_15 AC 38 ms 2348 KiB
1_16 AC 37 ms 2300 KiB
1_17 AC 37 ms 2372 KiB
1_18 AC 37 ms 2268 KiB
1_19 AC 37 ms 2276 KiB
1_20 AC 33 ms 2248 KiB