func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 2e5 + 7;   long long a[MAXN];   int n, k, x;   void print() {     for (int i = 1; i <= n; ++i) cout << a[i] <<    ;     exit(0);   }   int main() {     ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);     cin >> n >> k >> x;     vector<int> zeros;     int n_pos = 0, n_neg = 0, n_zer = 0;     for (int i = 1; i <= n; ++i) {       cin >> a[i];       if (a[i] > 0) ++n_pos;       if (a[i] < 0) ++n_neg;       if (a[i] == 0) ++n_zer, zeros.push_back(i);     }     if (n_zer) {       if (n_zer > k) print();       if ((n_zer & 1) == (n_neg & 1))         a[zeros.back()] += 1LL * x, zeros.pop_back(), ++n_pos, --k;       for (auto v : zeros) a[v] -= 1LL * x, ++n_neg, --k;     }     set<pair<long long, int> > s;     for (int i = 1; i <= n; ++i) s.insert({abs(a[i]), i});     if ((n_neg & 1) == 0) {       int id = s.begin()->second;       bool save = (a[id] > 0);       s.erase(s.begin());       while (k && (a[id] == 0 || ((a[id] > 0) == save))) {         if (save)           a[id] -= 1LL * x;         else           a[id] += 1LL * x;         --k;       }       if (k == 0) print();       s.insert({abs(a[id]), id});     }     while (k--) {       int id = s.begin()->second;       s.erase(s.begin());       if (a[id] > 0)         a[id] += 1LL * x;       else         a[id] -= 1LL * x;       s.insert({abs(a[id]), id});     }     print();     return 0;   }   