use proconio::{input, marker::Usize1}; fn main() { input! { n: usize, mut p: [i64; n], } let mut d = vec![0; n]; for i in 0..n { p[i] -= 1; } for i in 0..n { if p[i] == -1 { continue; } d[p[i] as usize] += 1; } let mut s = vec![false; n]; for i in 0..n { if d[i] == 0 { if p[i] != -1 && p[p[i] as usize] != -1 { s[p[p[i] as usize] as usize] = true; } } } let mut cnt = 0; for i in 0..n { if s[i] { cnt += 1; } } println!("{cnt}"); }