XOR 머신
시간 제한2초메모리 제한1024 MB
숨겨진 수열 A와 0으로 초기화된 B가 있을 때, 제한된 XOR 갱신 연산으로 A의 모든 짝수 길이 부분수열 XOR 최댓값을 두 번의 질의 안에 구한다.
문제
당신은 다음과 같은 문제를 두 번 해결해야 한다.
길이 의 수열 와 길이 의 수열 가 있다. 두 번의 문제 해결에서 은 같지만 는 다를 수 있다. 수열 의 내용은 알 수 없고, 는 각 문제를 해결하기 시작할 때 모든 원소가 이다.
부분 수열의 XOR합이란, 부분 수열에 들어있는 모든 원소를 XOR한 값을 의미한다.
당신은 수열 의 모든 짝수 크기의 부분 수열의 XOR합 중 최댓값을 찾아야 한다.
당신은 다음과 같은 연산을 할 수 있다.
A: 의 값을 로 바꾼다. 이 연산은 두 번의 문제 해결에서 총합하여 최대 번 할 수 있다.C: 의 값을 로 바꾼다. 이 연산은 두 번의 문제 해결에서 총합하여 최대 번 할 수 있다.Q: 길이 의 수열 의 모든 부분수열의 XOR합 중 최댓값을 찾는다. 이 연산은 두 번의 문제 해결에서 총합하여 최대 번 할 수 있으며 의 합은 총합하여 을 넘길 수 없다.!: 문제의 답 를 알아냈다면 이 연산을 통해 답을 제출할 수 있다.
연산들을 적절히 사용하여 문제의 답을 찾아내 보자.
각 연산을 할 수 있는 횟수 및 Q 연산에서의 의 합이 제한되어 있으며, 자세한 사항은 인터랙션 항목을 참조하여라.
입력
첫째 줄에 수열의 길이 이 주어진다.
숨겨진 수열 의 원소 는 모두 보다 크거나 같고 보다 작거나 같은 정수이다.
이후 당신과 채점 시스템과의 인터랙션이 진행된다.
힌트
두 정수 , 에 대해 는 와 를 XOR한 값으로 정의한다.
부분 수열은 수열에서 개 이상의 수를 제거하여 만든 수열을 의미한다.