순열 구하기
면접 대비시간 제한1초메모리 제한1024 MB
순열 P의 정렬된 접두사들을 P와 함께 XOR한 배열 B가 주어질 때, 원래의 순열 P를 복원합니다.
문제
부터 까지의 정수로 이루어진 길이 의 순열 가 있다. 배열 는 의 처음 ()개 원소를 정렬한 길이 의 배열이다. 배열 는 연산을 수행한 새로운 배열이다. 두 배열의 xor 연산은 다음 절차로 진행한다.
-
두 배열의 길이가 같으면 같은 위치의 원소끼리 xor 한다.
-
길이가 인 배열 와 길이가 인 배열 가 있고 이면 다음과 같이 연산한다.
배열 가 주어졌을 때 원래 순열 를 구하는 프로그램을 작성하시오.
여기서 는 비트 단위 xor 연산을 뜻한다. 자세한 정의는 힌트에 있다.
입력
첫째 줄에 순열의 길이 이 주어진다. ()
둘째 줄에 배열의 원소 가 공백으로 구분되어 주어진다. 순열 로 복원할 수 있는 배열 만 주어진다. 는 항상 보다 작은 음이 아닌 정수다.
출력
첫째 줄에 순열 의 원소를 공백으로 구분해 출력한다.
힌트
비트 단위 xor 연산은 두 이진수 값을 자리마다 계산하는 연산이다. 먼저 두 값을 이진수로 나타낸다. 그다음 각 자릿수를 비교한다. 두 자릿수가 다르면 결과는 1이고, 같으면 0이다.
예를 들어 의 값은 이다. 는 이진수로 이고, 은 이다. 계산 과정은 아래 그림과 같다. 결과는 , 즉 이다.
