use proconio::input; fn main () { input! { n: usize, k: usize, a: [i128; n], b: [i128; n], c: [i128; n], } let mut dif = b.iter() .zip(c.iter()) .enumerate() .map(|(i, (b, c))| { (b-c, i) }) .collect::>(); dif.sort_by(|a, b| b.cmp(a)); let mut ac = a.iter() .zip(c.iter()) .map(|(a, c)| a+c ) .collect::>(); for (i, v) in dif.iter().enumerate() { if i >= k {break;} ac[v.1] += v.0; } println!("{}", ac.iter().sum::()); }