#include <stdio.h>
#define X 1
#define Y 2
int n, a[1200], xXor = 0, yXor = 0, xTotal = 0, xCount = 0, answer = 0;
void Process(int index, int where);
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
Process(1, X);
Process(1, Y);
printf("%d", answer);
}
void Process(int index, int where)
{
if(index < n)
{
xTotal += a[index];
xXor ^= a[index];
xCount++;
Process(index+1, X);
xTotal -= a[index];
xXor ^= a[index];
xCount--;
yXor ^= a[index];
Process(index+1, Y);
yXor ^= a[index];
}
else
{
if((xXor ^ a[index]) == yXor && answer < xTotal + a[index] && xCount+1 != n) answer = xTotal + a[index];
if(xXor == (yXor ^ a[index]) && answer < xTotal && xCount != 0) answer = xTotal;
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1092 KB |
Output is correct |
2 |
Correct |
0 ms |
1092 KB |
Output is correct |
3 |
Correct |
0 ms |
1092 KB |
Output is correct |
4 |
Correct |
0 ms |
1092 KB |
Output is correct |
5 |
Correct |
0 ms |
1092 KB |
Output is correct |
6 |
Correct |
0 ms |
1092 KB |
Output is correct |
7 |
Correct |
0 ms |
1092 KB |
Output is correct |
8 |
Correct |
0 ms |
1092 KB |
Output is correct |
9 |
Correct |
0 ms |
1092 KB |
Output is correct |
10 |
Correct |
0 ms |
1092 KB |
Output is correct |
11 |
Correct |
0 ms |
1092 KB |
Output is correct |
12 |
Correct |
0 ms |
1092 KB |
Output is correct |
13 |
Correct |
0 ms |
1092 KB |
Output is correct |
14 |
Correct |
0 ms |
1092 KB |
Output is correct |
15 |
Correct |
0 ms |
1092 KB |
Output is correct |
16 |
Correct |
0 ms |
1092 KB |
Output is correct |
17 |
Correct |
0 ms |
1092 KB |
Output is correct |
18 |
Correct |
0 ms |
1092 KB |
Output is correct |
19 |
Correct |
0 ms |
1092 KB |
Output is correct |
20 |
Correct |
0 ms |
1092 KB |
Output is correct |
21 |
Correct |
0 ms |
1092 KB |
Output is correct |
22 |
Correct |
0 ms |
1092 KB |
Output is correct |
23 |
Correct |
0 ms |
1092 KB |
Output is correct |
24 |
Correct |
0 ms |
1092 KB |
Output is correct |
25 |
Correct |
0 ms |
1092 KB |
Output is correct |
26 |
Correct |
0 ms |
1092 KB |
Output is correct |
27 |
Correct |
0 ms |
1092 KB |
Output is correct |
28 |
Correct |
0 ms |
1092 KB |
Output is correct |
29 |
Correct |
0 ms |
1092 KB |
Output is correct |
30 |
Correct |
0 ms |
1092 KB |
Output is correct |
31 |
Correct |
0 ms |
1092 KB |
Output is correct |
32 |
Correct |
0 ms |
1092 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1000 ms |
1092 KB |
Program timed out |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1000 ms |
1088 KB |
Program timed out |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Execution timed out |
1000 ms |
1088 KB |
Program timed out |
2 |
Halted |
0 ms |
0 KB |
- |