Logo
(追記) (追記ここまで)

26604번 - 순열 구하기

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB78695391.379%

문제

1ドル$부터 $N$까지의 정수로 이루어진 길이 $N$의 순열 $P$가 있다. 배열 $A_{i}$는 $P$의 처음 $i(1≤i≤N)$개의 원소를 정렬시킨 길이 $i$의 배열로 정의한다. 배열 $B$는 $A_{1} \oplus A_{2} \oplus \cdots \oplus A_{N-1} \oplus A_{N} \oplus P$ 연산을 수행한 새로운 배열로 정의한다. 두 배열의 xor 연산은 아래의 절차로 이루어진다.

1. 두 배열의 길이가 같다면 다음과 같이 연산한다.

$ A \oplus B = [ A_{1} \oplus B_{1}, A_{2} \oplus B_{2}, \cdots , A_{N-1} \oplus B_{N-1}, A_{N} \oplus B_{N} ] $

2. 길이가 $N$인 배열 $A$와 길이가 $M$인 배열 $B$가 있는 경우 다음과 같이 연산한다. ( $N < M$ )

$A \oplus B = [ A_{1} \oplus B_{1}, A_{2} \oplus B_{2}, \cdots , A_{N-1} \oplus B_{N-1}, A_{N} \oplus B_{N}, B_{N+1} , \cdots , B_{M-1}, B_{M} ] $

배열 $B$가 주어졌을 때 원래 순열 $P$를 구하는 프로그램을 작성하시오.

여기서 $\oplus$는 bitwise xor 연산을 의미한다. bitwise xor 연산의 정의는 하단 힌트 탭에 있다.

입력

첫째 줄에 순열의 길이 $N$이 주어진다. $ \left( 1 \leq N \leq 5,000円 \right) $

둘째 줄에 배열의 원소 $B_{i}$가 공백으로 구분되어 주어진다.

순열 $P$로 복원할 수 있는 배열 $B$만 주어지며 $B_{i}$는 항상 2ドル^{31}$보다 작은 음이 아닌 정수다.

출력

첫째 줄에 순열 $P$의 원소를 공백으로 구분해 출력한다.

제한

예제 입력 1

3
0 2 0

예제 출력 1

1 2 3

예제 입력 2

4
0 6 5 5

예제 출력 2

4 3 2 1

$P = \left[ 4, 3, 2, 1 \right]$

$A_{1} = \left[ 4 \right]$

$A_{2} = \left[ 3, 4 \right]$

$A_{3} = \left[ 2, 3, 4 \right]$

$A_{4} = \left[ 1, 2, 3, 4 \right]$

$B = A_{1} \oplus A_{2} \oplus A_{3} \oplus A_{4} \oplus P = \left[ 4 \oplus 3 \oplus 2 \oplus 1 \oplus 4, 4 \oplus 3 \oplus 2 \oplus 3, 4 \oplus 3 \oplus 2, 4 \oplus 1 \right] = \left[ 0, 6, 5, 5 \right]$

힌트

bitwise xor 연산은 두 개의 2진수 값에 대해 자리 단위로 적용되는 연산이다. 먼저 피연산자로 주어진 두 값을 2진수로 표현한다. 그 뒤에 두 값의 각 자릿수를 비교해, 두 값이 다르면 1, 두 값이 같으면 0으로 계산한다.

예를 들어 12ドル \oplus 6$의 값은 10ドル$이다. 12ドル$는 2진수로 표현하면 1100ドル_{(2)}$이고 6ドル$은 2진수로 표현하면 0110ドル_{(2)}$이다. xor 연산은 아래의 그림과 같이 진행되고 결과는 1010ドル_{(2)},ドル 즉 10ドル$이다.

출처

University > 한양대학교 ERICA 캠퍼스 > Zero One Algorithm Contest 2022 K번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /