func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   ostream &operator<<(ostream &os, const vector<T> &v) {     for (T i : v) os << i <<  ,  ;     return os;   }   template <class T>   ostream &operator<<(ostream &os, const set<T> &v) {     for (T i : v) os << i <<    ;     return os;   }   template <class T>   ostream &operator<<(ostream &os, const multiset<T> &v) {     for (T i : v) os << i <<    ;     return os;   }   template <class T, class second>   ostream &operator<<(ostream &os, const pair<T, second> &v) {     os << v.first <<     << v.second;     return os;   }   template <class T, class second>   ostream &operator<<(ostream &os, const map<T, second> &v) {     for (auto i : v) os <<  (  << i.first <<   =>   << i.second <<  )  <<    ;     return os;   }   void fast() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);   }   int n, k;   long long x;   vector<long long> v;   void solve() {     int zero = 0, pos = 0, neg = 0;     for (long long &i : v) {       if (i == 0)         zero++;       else if (i > 0)         pos++;       else         neg++;     }     if (zero > k) {       for (long long &i : v) cout << i <<    ;       cout <<   n ;       return;     }     if (zero) {       if (neg % 2 == 1) {         for (long long &i : v)           if (i == 0 && k > 0) i += x, k--;       } else {         bool f = 0;         for (long long &i : v) {           if (i == 0 && k > 0) {             if (f == 0)               i -= x;             else               i += x;             f = 1;             k--;           }         }       }     }     int f = 0;     for (long long &i : v)       if (i < 0) f ^= 1;     if (f == 0) {       int idx = 0;       for (int i = 0; i < n; i++) {         if (abs(v[i]) < abs(v[idx])) idx = i;       }       if (v[idx] < 0) {         while (v[idx] <= 0 && k > 0) {           v[idx] += x;           k--;         }       } else {         while (v[idx] >= 0 && k > 0) {           v[idx] -= x;           k--;         }       }     }     set<pair<long long, int>> s;     for (int i = 0; i < n; i++) {       s.insert({abs(v[i]), i});     }     while (k > 0) {       auto it = *s.begin();       s.erase(s.begin());       if (v[it.second] < 0)         v[it.second] -= x;       else         v[it.second] += x;       s.insert({abs(v[it.second]), it.second});       k--;     }     for (long long &i : v) cout << i <<    ;     cout <<   n ;   }   int main() {     fast();     cin >> n >> k >> x;     for (int i = 0; i < n; i++) {       long long a;       cin >> a;       v.push_back(a);     }     solve();   }   