use proconio::input; use std::collections::HashSet; fn main() { input! { n: usize, rating: [i64; n], } let mut dp = HashSet::new(); let mut add = vec![]; for &r in &rating { add.push((1, r)); add.push((-1, -r)); for &(x, y) in &dp { add.push((x + 1, y + r)); add.push((x - 1, y - r)); } for x in add.drain(..) { dp.insert(x); } } let mut ans = 1_000_000_000_000_000_000; for (x, y) in dp { if x == 0 { ans = ans.min(y.abs()); } } println!("{ans}"); }