結果
| 問題 |
No.3263 違法な散歩道
|
| コンテスト | |
| ユーザー |
lp_ql
|
| 提出日時 | 2025-09-06 13:46:08 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 129 ms / 2,000 ms |
| コード長 | 1,156 bytes |
| コンパイル時間 | 14,507 ms |
| コンパイル使用メモリ | 397,808 KB |
| 実行使用メモリ | 17,508 KB |
| 最終ジャッジ日時 | 2025-09-06 13:46:26 |
| 合計ジャッジ時間 | 17,776 ms |
|
ジャッジサーバーID (参考情報) |
judge / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 28 |
コンパイルメッセージ
warning: unused import: `VecDeque`
--> src/main.rs:1:36
|
1 | use std::collections::{BinaryHeap, VecDeque};
| ^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
ソースコード
use std::collections::{BinaryHeap, VecDeque};
use proconio::{input, marker::Usize1};
fn main() {
input!{
n: usize,
m: usize,
uv: [(Usize1, Usize1); m],
k: usize,
a: [Usize1; k]
}
let mut g = vec![vec![]; n];
for (u, v) in uv{
g[u].push(v);
g[v].push(u);
}
let mut vis = vec![vec![false; 5]; n];
let mut q = BinaryHeap::new();
q.push((!0usize, 0, 0));
let mut iwai = vec![false; n];
for i in a{
iwai[i] = true;
}
vis[0][0] = true;
while let Some((dist, i, j)) = q.pop() {
if i == n - 1{
println!("{}", !dist);
return;
}
for &nv in &g[i]{
if iwai[nv] && j < 4{
if vis[nv][j + 1]{
continue;
}
vis[nv][j + 1] = true;
q.push((dist - 1, nv, j + 1));
}
else if !iwai[nv]{
if vis[nv][0]{
continue;
}
vis[nv][0] = true;
q.push((dist - 1, nv, 0));
}
}
}
println!("-1")
}
lp_ql