func_code_string: #include <bits/stdc++.h>   using namespace std;   inline long long ispossible(vector<long long>& b, vector<long long>& p, int k,                               long long a) {     int n = b.size();     if (k > p.size()) return -1;     long long c = 0, s = 0, extra = 0;     for (int i = n - k; i < n; i++) {       c += p[i - n + k];       extra += max(p[i - n + k] - b[i], 0ll);     }     if (extra > a) return -1;     long long e = c - a;     return e > 0 ? e : 0;   }   int main() {     int n, m;     long long a;     cin >> n >> m >> a;     vector<long long> b(n, 0), p(m, 0);     for (int i = 0; i < n; i++) cin >> b[i];     for (int i = 0; i < m; i++) cin >> p[i];     sort(b.begin(), b.end());     sort(p.begin(), p.end());     int l, r;     long long tcost, cost = 0;     l = 0, r = n;     while (l < r) {       m = (l + r) >> 1;       tcost = ispossible(b, p, m, a);       if (tcost >= 0) {         l = m + 1;         cost = tcost;       } else         r = m;     }     if (l <= r) {       tcost = ispossible(b, p, r, a);       if (tcost >= 0) {         l = r + 1;         cost = tcost;       }     }     cout << l - 1 <<     << cost << endl;     return 0;   }   