Xorcisten
시간 제한2.5초메모리 제한1024 MB
정수 목록의 값이 바뀔 때마다 a_i XOR X가 비감소 순서가 되는 가장 작은 X를 구하고, 그런 X가 없으면 -1을 출력하는 문제입니다.
문제
Xorcisten Roxanne은 리스트를 아주 빠르게 정렬하는 특별한 능력이 있다. 정수 리스트 을 보면 그녀는 곧바로 다음 식이 성립하는 정수 를 찾는다.
여기서 는 비트 XOR이다. 두 수를 2진법으로 쓰고, 가장 낮은 자리부터 차례로 두 자리가 같으면 0, 다르면 1을 쓴다. 자리올림 없이 2진수 덧셈을 하는 것과 같다.
그녀가 할 일은 각 를 로 바꾸는 것뿐이고, 그러면 리스트가 정렬된다.
여러 회사가 아주 긴 리스트를 정렬해 달라고 Roxanne을 자주 고용한다. 그런데 어느 날 그녀는 자신의 능력이 사라졌다는 것을 알게 된다. 당신의 과제는 그녀가 계속 일할 수 있도록 프로그램을 작성하는 것이다.
비음수 정수 과 개의 변경 가 주어진다. 이는 가 로 바뀐다는 뜻이다. 는 처음 개의 변경을 적용한 뒤, 리스트 가 정렬되도록 하는 가장 작은 비음수 정수 이다. 를 출력한다. 그런 가 없으면 을 출력한다.
입력
첫 줄에 정수 ()이 주어진다. 리스트에 있는 수의 개수이다.
둘째 줄에는 개의 정수 ()이 주어진다.
셋째 줄에는 변경 횟수 ()가 주어진다.
이어지는 개의 줄에는 정수 두 개 ()와 ()가 주어진다. 이는 를 로 바꾼다는 뜻이다.
출력
개의 줄을 출력한다. 번째 줄(0부터 센다)에는 변경 를 적용한 뒤 리스트를 정렬하는 가장 작은 인 를 출력한다. 그런 가 없으면 을 출력한다.