만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

XOR 합이 가장 큰 부분 수열

면접 대비

시간 제한10초메모리 제한512 MB

요약
수열이 주어질 때, 길이가 1 이상인 모든 연속 부분 배열의 XOR 값 중 최댓값을 구한다.
난이도

보통10점 중 7점

유형
비트 연산, 트라이, 누적 합, 배열
정답자
아직 제출이 없습니다

문제

NN개의 수로 이루어진 수열 AA가 주어진다. 이 수열에서 연속한 부분 수열을 하나 고른다. 부분 수열의 XOR 합은 그 부분 수열에 들어 있는 모든 원소를 XOR한 값이다.

수열 AA가 주어졌을 때, 길이가 1 이상인 연속한 부분 수열 중에서 XOR 합이 가장 큰 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (1≤T≤101 \le T \le 10)

각 테스트 케이스는 두 줄이다. 첫째 줄에 수열의 크기 NN (1≤N≤100 0001 \le N \le 100\,000)이 주어지고, 둘째 줄에 수열 AA의 원소 NN개가 공백으로 구분되어 주어진다. 각 원소는 32비트 부호 있는 정수 범위에 들어가는 음이 아닌 정수, 즉 00 이상 231−12^{31}-1 이하의 정수이다.

출력

각 테스트 케이스마다 연속한 부분 수열의 XOR 합 중 가장 큰 값을 한 줄에 하나씩 출력한다.

예제8

  1. 예제 1

    입력
    2
    5
    3 7 7 7 0
    5
    3 8 2 6 4
    
    예상 출력
    7
    15
    
  2. 예제 2

    입력
    1
    1
    0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1
    1
    2147483647
    
    예상 출력
    2147483647
    
  4. 예제 4

    입력
    1
    6
    0 0 0 0 0 0
    
    예상 출력
    0
    
  5. 예제 5

    입력
    1
    2
    5 5
    
    예상 출력
    5
    
  6. 예제 6

    입력
    1
    6
    8 1 2 15 0 8
    
    예상 출력
    15
    
  7. 예제 7

    입력
    1
    2
    1073741824 1073741823
    
    예상 출력
    2147483647
    
  8. 예제 8

    입력
    3
    4
    1 2 4 8
    3
    2147483647 2147483647 2147483647
    1
    1
    
    예상 출력
    15
    2147483647
    1