Submission
Status:
PP-PPPP-PP
Subtask/Task Score:
80/100
Score: 80
User: konthaina_TH
Problemset: วิศวกรรมข้อมูล
Language: cpp
Time: 0.002 second
Submitted On: 2026-09-26 03:34:12
#include <bits/stdc++.h>
using namespace std;
struct Element {
int val;
int cnt;
string bin_str;
};
string to_binary(bitset<64> b) {
string str = b.to_string();
auto pos = str.find_first_not_of('0');
return (pos != string::npos) ? str.substr(pos) : "0";
}
int main() {
int n;
cin >> n;
vector<Element> num(n);
for (int i=0;i<n;i++) {
cin >> num[i].val;
bitset<64> b(num[i].val);
num[i].cnt = b.count();
num[i].bin_str = to_binary(b);
//bit[i].erase(0,min(s[i].find_first_not_of('0'),s[i].size()-1));
}
sort(num.begin(),num.end(), [](const Element& A, const Element& B) {
if (A.cnt != B.cnt) {
return A.cnt > B.cnt;
}
return (A.bin_str + B.bin_str) > (B.bin_str + A.bin_str);
});
string s = "";
for (int i=0;i<n;i++) {
s += num[i].bin_str;
}
unsigned long long val = stoull(s,nullptr,2);
cout << val << "\n";
return 0;
}