use proconio::{fastout, input}; #[fastout] fn main() { input! { n: usize, k: usize, a: [i8; n], } println!("{}", output(solve(k, a))) } fn solve(k: usize, mut a: Vec) -> i16 { a.sort_unstable_by_key(|&a| std::cmp::Reverse(a)); match a[0] >= 0 { true => a .into_iter() .take(k) .take_while(|&a| a >= 0) .map(|a| a as i16) .sum(), false => a[0] as i16, } } fn output(ans: i16) -> i16 { ans }