Submission
Status:
-PPP-PPP--
Subtask/Task Score:
60/100
Score: 60
User: angpangSK
Problemset: วิศวกรรมข้อมูล
Language: cpp
Time: 0.003 second
Submitted On: 2025-09-25 20:36:22
#include<bits/stdc++.h>
using namespace std;
string IntToBitstring(int n) {
string s = "";
while(n > 0) {
s = to_string(n % 2) + s;
n /= 2;
}
return s;
}
int BitstringToInt(string s) {
int n = 0;
for(int i = 0; i < s.length(); i++) {
n = n * 2 + (s[i] - '0');
}
return n;
}
int main() {
int n;
cin >> n;
int arr[n];
for(int i = 0; i < n; i++) {
cin >> arr[i];
}
string bit[n];
for(int i = 0; i < n; i++) {
bit[i] = IntToBitstring(arr[i]);
}
//find greatest value
string bignum;
int value;
string bignum1;
int value1;
if (n == 2) {
bignum = bit[0] + bit[1];
value = BitstringToInt(bignum);
bignum1 = bit[1] + bit[0];
value1 = BitstringToInt(bignum1);
if (value > value1) {
cout << value << endl;
}
else {
cout << value1 << endl;
}
}
else if (n == 3) {
bignum = bit[0] + bit[1] + bit[2];
value = BitstringToInt(bignum);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
if (i != j && j != k && i != k) {
bignum1 = bit[i] + bit[j] + bit[k];
value1 = BitstringToInt(bignum1);
if (value < value1) {
value = value1;
bignum = bignum1;
}
}
}
}
}
cout << value << endl;
}
else if (n == 4) {
bignum = bit[0] + bit[1] + bit[2] + bit[3];
value = BitstringToInt(bignum);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
for (int l = 0; l < n; l++) {
if (i != j && j != k && i != k && i != l && j != l && k != l) {
bignum1 = bit[i] + bit[j] + bit[k] + bit[l];
value1 = BitstringToInt(bignum1);
if (value < value1) {
value = value1;
bignum = bignum1;
}
}
}
}
}
}
cout << value << endl;
}
return 0;
}