/* -*- coding: utf-8 -*- * * 699.cc: No.699 ペアでチームを作ろう2 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 14; const int NBITS = 1 << MAX_N; /* typedef */ /* global variables */ int as[MAX_N]; int maxd = 0; /* subroutines */ void rec(int i, int n, int bits, int d) { int bi = 1 << i; while (i < n && (bits & bi)) i++, bi <<= 1; if (i >= n) { if (maxd < d) maxd = d; return; } for (int j = i + 1, bj = 1 << (i + 1); j < n; j++, bj <<= 1) if (! (bits & bj)) rec(i + 1, n, bits | bi | bj, d ^ (as[i] + as[j])); } /* main */ int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &as[i]); int nbits = 1 << n; rec(0, n, 0, 0); printf("%d\n", maxd); return 0; }