結果

問題 No.3424 Shooting Game
コンテスト
ユーザー elphe
提出日時 2026-01-11 14:53:53
言語 Rust
(1.92.0 + proconio + num)
結果
TLE  
実行時間 -
コード長 1,035 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 27,557 ms
コンパイル使用メモリ 414,436 KB
実行使用メモリ 19,800 KB
最終ジャッジ日時 2026-01-11 14:55:02
合計ジャッジ時間 33,677 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample TLE * 1 -- * 2
other -- * 10
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

use proconio::{fastout, input};

#[fastout]
fn main() {
    input! {
        n: usize,
        t: u32,
        targets: [(u32, u32, u32); n],
    }

    println!("{}", output(solve(t, targets)));
}

fn solve(t: u32, mut targets: Vec<(u32, u32, u32)>) -> u64 {
    let mut dp = [0; 200_002];
    let mut pq = std::collections::BinaryHeap::with_capacity(targets.len());
    targets.sort_unstable_by_key(|&(l, _, _)| l);
    let mut targets = targets.into_iter().peekable();
    for time in 0..=200_000 {
        while let Some(&(l, r, p)) = targets.peek() {
            if l == time {
                targets.next();
                pq.push((p, r));
            }
        }
        while let Some(&(_, r)) = pq.peek() {
            if time > r {
                pq.pop();
            }
        }

        let p = pq.peek().unwrap_or(&(0, u32::MAX)).0;
        dp[(time + 1) as usize] =
            dp[time as usize].max(dp[time.saturating_sub(t - 1) as usize] + p as u64);
    }
    dp[200_001]
}

fn output(ans: u64) -> u64 {
    ans
}
0