結果
問題 | No.2957 Combo Deck Builder |
ユーザー |
|
提出日時 | 2024-11-20 12:54:43 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 62 ms / 1,000 ms |
コード長 | 1,092 bytes |
コンパイル時間 | 12,845 ms |
コンパイル使用メモリ | 403,992 KB |
実行使用メモリ | 11,776 KB |
最終ジャッジ日時 | 2024-11-20 12:55:01 |
合計ジャッジ時間 | 16,544 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 38 |
ソースコード
#[allow(unused_imports)]use proconio::{input,marker::{Bytes, Chars, Usize1},};use std::collections::BinaryHeap;fn main() {input! {n: usize,}let mut base = 0;let mut vl = vec![];let mut vr = vec![];for _ in 0..n {input! {c: usize,x: usize,y: usize,}if x >= y {base += y;if c < n {vr.push((n - c, x - y));}} else {base += x;if c > 0 {vl.push((c, y - x));}}}vl.sort_unstable();vr.sort_unstable();// vl.reverse();// vr.reverse();let mut res = 0;for mut v in [vl, vr] {let mut sum = 0;let mut pq = BinaryHeap::new();for d in (1..=v.len()).rev() {while v.len() > 0 && v.last().unwrap().0 >= d {pq.push(v.pop().unwrap().1);}sum += pq.pop().unwrap_or_default();}res += sum;}println!("{}", base + res);}