Submission

Status:

PP-PPPPPPP

Subtask/Task Score:

90/100

Score: 90

User: kavin8888

Problemset: วิศวกรรมข้อมูล

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-16 13:38:08

#include <bits/stdc++.h>

using namespace std;

int main() {
    long long int a;
    cin >> a;
    vector<pair<int, int>> b(a);
    for (int i = 0; i < a; i++) {
        cin >> b[i].second;
    }
    int geb = 0;
    int k = 0;
    int li = 0;
    for (int i = 0; i < a; i++) {
        for (int j = 0; (1 << j) <= b[i].second; j++) {
            if (((1 << j) & (b[i].second)) > 0) {
                geb++;
            }
            k++;
            li++;
        }
        b[i].first = k - geb;
        geb = 0;
        k = 0;
    }

    for (int i = 0; i < a; i++) {
        b[i].second = b[i].second * (-1);
    }
    sort(b.begin(), b.end());
    int ox[li];
    int y = 0;
    for (int i = 0; i < a; i++) {
        b[i].second = b[i].second * (-1);
    }
    for (int i = a - 1; i >= 0; i--) {
        while (b[i].second != 0) {
            ox[y] = b[i].second % 2;
            b[i].second /= 2;
            y++;
        }
    }
    int ans = 0;
    for (int u = li - 1; u >= 0; u--) {
        ans = (ans * 2) + ox[u] % 2;
    }
    cout << ans;
    return 0;
}