Submission

Status:

PP-PPPP-PP

Subtask/Task Score:

80/100

Score: 80

User: nxtx_ss

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-10-14 11:13:05

#include <bits/stdc++.h>
using namespace std;
int n;
string p(long long k){
    long long q[100000];
    long long i=0,ct=0;
    string l;
    while(k>0){
        q[i]=k%2;
        k=k/2;
        i++;
    }
    for(int j=i-1; j>=0; j--){
        l+=to_string(q[j]) ;
    }
    return l;
}
int main()
{
    ios_base::sync_with_stdio(0);
	cin.tie(0);
    cin>>n;
    long long a[n],ct[n]={0},d[n]={0},mx=-999999,m;
    string g,s;
    for(int i=0; i<n; i++){
        cin>>a[i];
    }
    for(int i=0; i<n; i++) {
            g=p(a[i]);
            long long k=0,f=0;
            for(int k=0; k<g.size(); k++){
                if(g[k] == '0'){
                    f=1;
                }
                else if(g[0]=='1' && g[k] == '1' && f==0){
                    ct[i]++;
                }
                else if(g[k] == '1'){
                    d[i]++;
                }
            }
    }
    for(int i=0; i<n-1; i++) {
        for(int j=i+1;j<n;j++){
            if(ct[i] < ct[j]){
                swap(ct[i],ct[j]);
                swap(a[i],a[j]);
                swap(d[i],d[j]);
            }
            else if(ct[i]==ct[j]){
                if(d[i] < d[j]){
                    swap(ct[i],ct[j]);
                    swap(a[i],a[j]);
                    swap(d[i],d[j]);
                }
                else if(d[i]==d[j] && p(a[j]).size() < p(a[i]).size() ){
                    swap(ct[i],ct[j]);
                    swap(a[i],a[j]);
                    swap(d[i],d[j]);
                }
            }
        }
    }
 //   for(int i=0;i<n;i++){
 //       cout << p(a[i]);
 //   }
    string u;

 //   cout<<"\n";
   for(int i=0;i<n;i++){
        u+=p(a[i]);
    }
    long long sm=0,z=u.size()-1;
    for(int i=0;i<u.size(); i++) {
        sm=sm+(u[i]-'0')*pow(2,z);
        z--;
    }
    cout<<sm;
}