Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: Zailagend1
Problemset: วิศวกรรมข้อมูล
Language: cpp
Time: 0.004 second
Submitted On: 2026-06-21 21:15:48
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<vi> vvi;
typedef vector<vll> vvll;
typedef vector<pii> vpii;
typedef vector<string> vs;
typedef unordered_map<int, int> umii;
typedef unordered_map<string, int> umsi;
typedef unordered_map<char, int> umci;
typedef unordered_map<ll, ll> umll;
typedef unordered_set<int> usi;
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
#define sz(v) (int)(v).size()
#define il(n) int i = 0; i < (n); i++
#define jl(n) int j = 0; j < (n); j++
#define kl(n) int k = 0; k < (n); k++
const int MOD = 1e9 + 7;
const int INF = 1e9;
const ll LINF = 1e18;
template<typename T> void _dbg(T t) { cerr << t; }
template<typename T, typename... Args> void _dbg(T t, Args... args) { cerr << t << ", "; _dbg(args...); }
#ifdef LOCAL
#define debug(...) do { cerr << "[" << #__VA_ARGS__ << "] = ["; _dbg(__VA_ARGS__); cerr << "]" << endl; } while(0)
#else
#define debug(...)
#endif
int diff = 0;
string toBinary(int n);
bool compareBinary(const string &A, const string &B);
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
int result3 = 0;
cin >> n;
vs result1;
vi a(n);
string result2;
for (int i = 0; i < n; i++) cin >> a[i];
for(int x = 0;x<n;x++){
result1.pb(toBinary(a[x]));
}
sort(result1.begin(),result1.end(),compareBinary);
for(string x:result1){
result2 += x;
}
for(int x = 0;x<result2.size();x++){
if(result2[result2.size() - 1 - x] == '1'){
result3 += (pow(2,x));
}
}
cout << result3;
return 0;
}
string toBinary(int n){
if(n == 0){return "0";}
string binary = "";
if(n > 0 ){
while(n>0){
binary += (n%2 == 0)?"0":"1";
n /= 2;
}
}
reverse(binary.begin(),binary.end());
return binary;
}
bool compareBinary(const string &A, const string &B) {
return (A + B) > (B + A);
}