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