Informatica Online Judge

  요리 2 [2306 / 0902]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 6   Total Tried : 8


The Champion of this Problem (C++) : gs17044 - ms / 1009byte
My Best Submission (C++) : N/A

[35th 박찬호]

Background

지난 문제에서 세기의 주방장 이도연은 불로만 매운맛을 먹은 후, 병원에 실려갔다.

병원에 있는 동안 요리 실력을 녹슬지 않게 하기 위해, 이도연은 병원 음식으로 자신의 미각을 시험해보기로 하였다.

그는 병원 음식을 일정한 순서대로 먹을 것이다. 병원 음식은 특유의 여운이 강하기 때문에, 어떤 음식을 먹을 때 그가 느끼는 맛은 바로 전에 먹었던 음식의 맛과 지금 먹는 음식의 맛의 XOR 합과 같다.

예를 들어보자, 이도연이 4의 맛을 가진 음식을 먹고, 7의 맛을 가진 음식을 먹고, 6의 맛을 가진 음식을 먹었다면, 처음에 4의 맛을 느끼고, 다음에 4 XOR 7 = 3의 맛을 느끼고, 마지막에는 7 XOR 6 = 1의 맛을 느낄 것이다.

이도연은 자신의 입맛이 병원 음식에 의해 무뎌지는 것을 원하지 않기 때문에, 같은 음식을 여러번 먹지 않으면서 지금까지 먹은 음식의 맛의 최댓값이 최소가 되길 원하고 있다. 음식이 주어졌을 때 그가 입맛을 잃지 않게 도와주자!

Input

첫째줄에 병원 음식의 개수 N이 주어진다. (2≤N≤300000)
둘째줄에는 N개의 병원 음식의 맛이 공백으로 구분되어 주어진다. (단, 맛은 2^(31)-1 이하의 정수값을 가진다.)

Output

순서대로 음식을 먹었을 때, 먹은 음식의 맛의 최댓값이 될 수 있는 값 중 최솟값을 출력한다.

IO Example

입력 예제
3
4 7 6

출력 예제
4

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]