use proconio::{fastout, input}; use std::collections::BTreeSet; #[fastout] fn main() { input! { n: usize, a: [i64; n], } let mut set = BTreeSet::new(); let mut t = 0; for i in 0..n { set.insert((a[i], t)); t += 1; } for _ in 0..n - 1 { let x = set.range((0, 0)..).next(); if x.is_none() { println!("No"); return; } let y = set.range(..=(0, i32::MAX)).next(); if y.is_none() { println!("No"); return; } set.insert((x.unwrap().0 + y.unwrap().0, t)); t += 1; } println!("Yes"); }