Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: mantaggez

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-22 20:07:52

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

ll n, x, ans;
vector<string> str;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin >> n;
    for(ll i=0;i<n;i++) {
        string s = "";
        cin >> x;
        for(ll j=0;j<7;j++) {
            if(x & (1 << j)) {
                s += "1";
            }
            else s += "0";
        }

        reverse(s.begin(), s.end());
        ll idx = 0;
        for(ll j=0;j<s.size();j++) {
            if(s[j] == '1') {
                idx = j;
                break;
            }
        }

        str.push_back(s.substr(idx, s.size()));
    }

    vector<ll> idx(n);
    iota(idx.begin(), idx.end(), 0);

    do {
        string s = "";
        ll sum = 0;
        for(ll i : idx) s += str[i];
        for(ll i=0;i<s.size();i++) {
            if(s[i] == '1') {
                sum += (1 << s.size() - i - 1);
            }
        }
        ans = max(ans, sum);
    }
    while(next_permutation(idx.begin(), idx.end()));
    
    cout << ans << '\n';

    return 0;
}