use std::{cmp::Reverse, collections::BinaryHeap}; use proconio::input; fn solve() -> i64 { input! { n: usize, k: usize, x: i64, a: [i64; n], } let mut q = BinaryHeap::new(); let mut s = 0; let mut ans = i64::MIN; for (i, &ai) in a.iter().enumerate() { q.push(Reverse(ai)); s += ai; if q.len() > k { s -= q.pop().unwrap().0; } ans = ans.max(s - (i as i64 + 1) * x); } ans } fn main() { let ans = solve(); println!("{}", ans); }