Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: jackpapho
Problemset: วิศวกรรมข้อมูล
Language: cpp
Time: 0.003 second
Submitted On: 2026-10-11 13:06:44
#include <iostream>
#include <vector>
using namespace std;
vector<string> num;
vector<bool> used;
int n;
long long ans = -10000;
void recur(string s,int tua){
if (tua == n){
long long k = 0;
for (char c:s){
k = k*2 + (c-'0');
}
ans = max(k,ans);
return;
}
for (int i = 0;i < n;i++){
if (used[i]) continue;
used[i] = true;
recur(s+string(num[i]),tua+1);
used[i] = false;
}
}
int main(){
cin.tie(0)->sync_with_stdio(0);
cin >> n;
used.resize(n,false);
for (int i = 0;i < n;i++){
int a;
cin >> a;
string temp;
while (a>0){
temp = char('0'+a%2)+temp;
a=a/2;
}
num.push_back(temp);
}
recur("",0);
cout << ans;
return 0;
}