두 수열 만들기
시간 제한1초메모리 제한1024 MB
서로 다른 2N개의 정수를 두 개의 N개짜리 수열로 나누어, 한 수열의 원소와 다른 수열의 원소가 정확히 한 비트만 다르지 않도록 한다.
문제
개의 정수 이 주어진다.
다음 조건을 만족하며, 에서 중복없이 각각 개를 사용하여 만들 수 있는 수열 과 수열 을 출력하시오.
- 임의의 에 대해 는 음이 아닌 정수를 만족하는 가 수열 에 없어야 한다.
- 임의의 에 대해 는 음이 아닌 정수를 만족하는 가 수열 에 없어야 한다.
입력
첫째 줄에 이 주어진다.
둘째 줄에 이 공백으로 구분되어 주어진다.
입력으로 주어지는 모든 는 서로 다르다.
출력
첫째 줄에 을 공백으로 구분하여 출력한다.
둘째 줄에 을 공백으로 구분하여 출력한다.
수열을 출력할 때 출력하는 순서는 상관없다.
만약 수열을 만들 수 있는 경우가 여러 가지라면 그중 아무거나 출력하고, 수열을 만들 수 없는 경우에는 -1을 대신 출력한다.
힌트
은 Bitwise XOR을 뜻하며, 음이 아닌 두 정수 의 는 다음과 같이 정의된다.
- 이진법으로 생각했을 때, 의 의 자릿수와 의 의 자릿수가 서로 다르면 의 의 자릿수가 이고, 같으면 의 의 자릿수가 이다. (단, )
- 예를 들어 은 이므로 이다.