use proconio::{input, marker::Usize1}; fn main() { match solve() { Some(ans) => println!("{}", ans), None => println!("-1"), } } fn solve() -> Option { input! { (n, t): (usize, usize), tt: [usize; n - 1], k: usize, xx: [Usize1; k], } let mut exists_clock_flags = vec![false; n]; for &x in &xx { exists_clock_flags[x] = true; } let mut count = t; let mut rem_clocks = 0_usize; let mut used_clocks = 0_usize; for (pos, &t) in tt.iter().enumerate() { rem_clocks += exists_clock_flags[pos] as usize; let require_clocks = (t + 10).saturating_sub(count) / 10; if rem_clocks < require_clocks { return None; } rem_clocks -= require_clocks; used_clocks += require_clocks; count = count + 10 * require_clocks - t; } Some(used_clocks) }