Submission
Status:
PPPPPPPPPP
Subtask/Task Score:
100/100
Score: 100
User: nate213121
Problemset: วิศวกรรมข้อมูล
Language: cpp
Time: 0.005 second
Submitted On: 2026-09-07 20:44:46
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> permutations;
int n;
void generatePermutations(vector<int> curr, int index)
{
if(index == n)
{
permutations.push_back(curr);
return;
}
for(int i = index; i < n; i++)
{
swap(curr[i], curr[index]);
generatePermutations(curr, index + 1);
swap(curr[i], curr[index]);
}
}
int f(vector<int> &in)
{
string resultBinary = "";
for(int i = 0; i < in.size(); i++)
{
int curr = in[i];
bitset<8> b(curr);
string str = b.to_string();
reverse(str.begin(), str.end());
while(str[str.size() - 1] == '0')
{
str.pop_back();
}
reverse(str.begin(), str.end());
resultBinary += str;
}
int out = 0;
int currValue = 1;
for(int i = resultBinary.size() - 1; i >= 0; i--)
{
if(resultBinary[i] == '1')
{
out += currValue;
}
currValue *= 2;
}
return out;
}
int main()
{
cin >> n;
vector<int> v(n);
for(int i = 0; i < n; i++)
{
cin >> v[i];
}
generatePermutations(v, 0);
int m = INT_MIN;
for(auto& x:permutations)
{
m = max(m, f(x));
}
cout << m;
return 0;
}