| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 918 | 271 | 203 | 29.335% |
민찬이는 KSA 학생들을 위해 $1$번부터 $N$번까지의 문제들로 구성된 문제 목록을 준비했다. $i$번 문제의 레벨은 $A_i$이다.
학생들로부터 문제가 너무 많다는 불평을 들은 민찬이는 문제 목록을 한 개 이상의 연속된 구간으로 분할해, 구간마다 그 구간에 속한 문제들을 하나의 새로운 문제로 대체하려고 한다. 단, 각 구간에는 적어도 하나의 문제가 포함되어 있어야 하며, KSA 학생들을 더 헷갈리게 하기 위해 인접한 두 구간의 문제 수는 서로 다르도록 분할해야 한다.
새로운 문제의 레벨은 해당하는 구간에 속한 문제의 레벨을 모두 bitwise XOR한 값이다. 민찬이는 KSA 학생들의 실력 향상을 위해 새로운 문제들의 레벨 합을 최대로 하려고 한다. 문제 목록을 적절한 구간들로 분할했을 때, 새로운 문제들의 레벨 합의 최댓값을 구해보자.
첫 번째 줄에 정수 $N$이 주어진다.
두 번째 줄에 $N$개의 정수 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다.
새로운 문제들의 레벨 합의 최댓값을 출력한다.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 23 | $N \le 100$ |
| 2 | 36 | $N \le 3000$ |
| 3 | 41 | 추가 제약 조건 없음 |
3 5 3 2
8
$[1, 2]$, $[3, 3]$ 두 구간으로 분할하면 레벨 합을 $8$로 만들 수 있다.
$(5 \oplus 3) + (2) = 8$
4 6 2 4 6
18
$[1, 1]$, $[2, 3]$, $[4, 4]$ 세 구간으로 분할하면 레벨 합을 $18$로 만들 수 있다.
$(6) + (2 \oplus 4) + (6) = 18$
4 1 2 4 8
15
$[1, 4]$ 한 구간으로 분할하면 레벨 합을 $15$로 만들 수 있다.
$(1 \oplus 2 \oplus 4 \oplus 8)= 15$
음이 아닌 두 정수 $A$와 $B$의 bitwise XOR, 즉 $A \oplus B$는 다음과 같이 정의된다:
예를 들어, $3 \oplus 5 = 6$이다. (이진수로 나타내면: $011 \oplus 101 = 110$).
School > 한국과학영재학교 > 2023 KSA Automata Summer Contest E번