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