Submission

Status:

PPPPPPPPPP

Subtask/Task Score:

100/100

Score: 100

User: Pera

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-05-24 11:33:39

#include <bits/stdc++.h>
using namespace std;

string dectobin(int decimal);
int bintodec(string binary);

int main() {
    ios_base::sync_with_stdio(false);
    
    int n; cin >> n;
    vector<string> binstart(n);
    for (int i = 0; i < n; ++i) {
        int num; cin >> num;

        binstart.push_back(dectobin(num));
    }

    int biggest = INT_MIN;

    do {

        string bintry = "";
        for (int i = 0; i < binstart.size(); ++i) {
            bintry += binstart[i];
        }
        int trynum = bintodec(bintry);
        biggest = max(biggest, trynum);

    } while (next_permutation(binstart.begin(), binstart.end()));

    cout << biggest << '\n';

}

string dectobin(int decimal) {
    string binary = "";

    while (decimal > 0) {
        int dig = decimal % 2;
        decimal /= 2;
        binary.push_back(dig + '0');
    }

    reverse(binary.begin(), binary.end());
    return binary;
}

int bintodec(string binary) {
    int sum = 0;
    int current = 1;

    reverse(binary.begin(), binary.end());

    for (auto bin: binary) {
        sum += (bin - '0') * current;
        current *= 2;
    }

    return sum;
}