complete 2022.rs 1264.rs 1318.rs 3731.rs 4633.rs 7140.rs 7541.rs 14315.rs 17204.rs 25208.rs

This commit is contained in:
2026-02-14 03:40:42 -08:00
parent c66152fbc8
commit 381b9ef968
10 changed files with 605 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
use std::io::{read_to_string, stdin};
fn main() {
let temp = read_to_string(stdin()).unwrap();
let mut iter = temp
.split_ascii_whitespace()
.map(|x| x.parse::<usize>().unwrap());
let (n, k) = (iter.next().unwrap(), iter.next().unwrap());
let mut edges = vec![0; n];
let mut flg = false;
(0..n).for_each(|i| {
let nxt = iter.next().unwrap();
edges[i] = nxt;
if nxt == k {
flg = true;
}
});
if !flg {
println!("{}", -1);
return;
}
let mut curr = 0;
let mut nxt;
let mut vis = vec![false; n];
let mut m = 0;
'a: loop {
if vis[curr] {
m = -1;
break;
} else {
vis[curr] = true;
}
if curr == k {
break 'a;
}
nxt = edges[curr];
curr = nxt;
m += 1;
}
println!("{}", m);
}