#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void chmax(long long& a, long long b) { a = max(a, b); } int n; int a[16]; int ans = 0; void dfs(vector v, vector used) { if (v.size() == n) { int res = 0; for (int i = 0; i < n; i += 2) res += a[v[i]] ^ a[v[i+1]]; //printf("v : "); for (int i = 0; i < n; i++) printf("%d ", v[i]); printf("\n"); //printf("res = %d\n", res); ans = max(ans, res); return; } if (v.size() % 2 == 1) { for (int i = 0; i < n; i++) { if (used[i]) continue; v.push_back(i); used[i] = true; dfs(v, used); v.pop_back(); used[i] = false; } } else { int i; for (int j = 0; j < n; j++) { if (!used[j]) { i = j; break; } } v.push_back(i); used[i] = true; dfs(v, used); v.pop_back(); used[i] = false; } } int main() { cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; vector v; vector used(n, false); dfs(v, used); cout << ans << endl; }