func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 5e5 + 10;   priority_queue<int, vector<int>, greater<int> > q1;   queue<int> q2;   int n, a[MAXN];   int main() {     ios::sync_with_stdio(0);     cin >> n;     long long ans = 0;     for (int i = 1; i <= n; ++i) cin >> a[i], ans += a[i];     sort(a + 1, a + n + 1);     int lea = 0;     for (int i = n; i > 0; --i) {       int now = a[i], cnt = 1;       while (i > 0 && a[i - 1] == now) i--, cnt++;       while (lea && cnt) cnt--, lea--, q2.push(now);       while (!q1.empty() && cnt >= 2 && q1.top() < 2 * now) {         int tmp = q1.top();         q1.pop();         if (tmp < now)           q2.push(now), q2.push(now);         else           q2.push(tmp), q2.push(now * 2 - tmp);         cnt -= 2;       }       if (!q1.empty() && cnt && now > q1.top()) q1.pop(), q1.push(now);       while (!q2.empty()) q1.push(q2.front()), q2.pop();       lea += cnt;     }     while (!q1.empty()) ans -= q1.top(), q1.pop();     cout << ans << endl;     return 0;   }   