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);
}