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