use proconio::input; fn main() { input! { n:usize, a:[usize;n], b:[usize;n], } const M: usize = 2000000; let mut g = vec![vec![]; M]; for (&a, &b) in a.iter().zip(b.iter()) { g[a].push(a + b); } let mut dp = vec![false; M]; dp[1] = true; for i in 0..M { if !dp[i] { continue; } for &j in g[i].iter() { dp[j] = true; } } let ans = dp.iter().rposition(|dpi| *dpi).unwrap(); println!("{}", ans); }