結果
| 問題 | No.3797 Express Elevators and Emergency Stairs |
| ユーザー |
urectanc
|
| 提出日時 | 2026-11-13 23:17:15 |
| 言語 | Rust (1.99.1 + proconio + num + itertools + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 95 ms / 2,000 ms |
| + 743µs | |
| コード長 | 993 bytes |
| 記録 | |
| コンパイル時間 | 2,249 ms |
| コンパイル使用メモリ | 192,804 KB |
| 実行使用メモリ | 45,312 KB |
| 最終ジャッジ日時 | 2026-11-13 23:17:22 |
| 合計ジャッジ時間 | 6,133 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge5_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
use std::collections::HashMap;
use itertools::Itertools;
use proconio::input;
fn main() {
input! {
n: usize,
ab: [(usize, usize); n],
}
let mut values = ab.iter().flat_map(|&(a, b)| [a, b]).collect_vec();
values.push(1);
values.sort_unstable();
values.dedup();
let k = values.len();
let compress: HashMap<_, _> = values.iter().enumerate().map(|(i, &x)| (x, i)).collect();
let mut graph = vec![vec![]; k];
for i in 0..k - 1 {
graph[i + 1].push(i);
}
for &(a, b) in &ab {
let a = compress[&a];
let b = compress[&b];
graph[a].push(b);
}
let mut stack = vec![0];
let mut seen = vec![false; k];
seen[0] = true;
let mut ans = 1;
while let Some(v) = stack.pop() {
ans = ans.max(values[v]);
for &u in &graph[v] {
if !seen[u] {
seen[u] = true;
stack.push(u);
}
}
}
println!("{ans}");
}
urectanc