2572번 - 수열과 수열
스페셜 저지시간 제한1 초
메모리 제한1024 MB
제출9
정답7
맞힌 사람2
정답 비율77.78%
문제
길이가 $N$인 두 정수 수열 $A: A_1, A_2, \cdots, A_N$과 $B: B_1, B_2, \cdots, B_N$이 주어진다. 각 수열은 서로 다른 $N$개의 수로 이루어져 있고 $1 \leq A_i, B_i \leq N$ ($1 \leq i \leq N$)이다. 이때, 여러분은 수열 $A$에 다음과 같은 연산을 가할 수 있다.
\begin{itemize}
\item $1 \leq l < r \leq N$이고 $r-l$이 홀수인 양의 정수 $l$과 $r$을 임의로 선택한다.
\item $A_l$과 $A_{l+1}$의 값을 바꾼다.
\item $A_{l+2}$와 $A_{l+3}$의 값을 바꾼다.
\item $\cdots$
\item $A_{r-1}$과 $A_r$의 값을 바꾼다.
\end{itemize}
여러분은 $A$에 연산을 몇 번 가해 $B$와 같도록 하고자 한다. 연산의 횟수를 최소화할 필요는 없으나, 물론 연산을 한 번도 가하지 않을 수도 있다. 이때, $A$에 몇 번의 연산을 통해 $B$와 같도록 할 수 있다면 $A$에 가하는 연산의 횟수가 $10^6$ 이하이도록 할 수 있음을 증명할 수 있다. $10^6$번 이하의 연산을 통해 $A$를 $B$와 같도록 하는 연산을 찾아 보자.
\begin{itemize}
\item $1 \leq l < r \leq N$이고 $r-l$이 홀수인 양의 정수 $l$과 $r$을 임의로 선택한다.
\item $A_l$과 $A_{l+1}$의 값을 바꾼다.
\item $A_{l+2}$와 $A_{l+3}$의 값을 바꾼다.
\item $\cdots$
\item $A_{r-1}$과 $A_r$의 값을 바꾼다.
\end{itemize}
여러분은 $A$에 연산을 몇 번 가해 $B$와 같도록 하고자 한다. 연산의 횟수를 최소화할 필요는 없으나, 물론 연산을 한 번도 가하지 않을 수도 있다. 이때, $A$에 몇 번의 연산을 통해 $B$와 같도록 할 수 있다면 $A$에 가하는 연산의 횟수가 $10^6$ 이하이도록 할 수 있음을 증명할 수 있다. $10^6$번 이하의 연산을 통해 $A$를 $B$와 같도록 하는 연산을 찾아 보자.
입력
첫 번째 줄에 양의 정수 $N$이 주어진다. ($1 \leq N \leq 300\,000$)
두 번째 줄에 수열 $A$를 이루는 $N$개의 수 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다.
세 번째 줄에 수열 $B$를 이루는 $N$개의 수 $B_1, B_2, \cdots, B_N$이 공백으로 구분되어 주어진다.
두 번째 줄에 수열 $A$를 이루는 $N$개의 수 $A_1, A_2, \cdots, A_N$이 공백으로 구분되어 주어진다.
세 번째 줄에 수열 $B$를 이루는 $N$개의 수 $B_1, B_2, \cdots, B_N$이 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 가해야 하는 연산의 횟수 $Q$를 출력하라. 만약 $A$를 $B$로 바꿀 수 없다면 $-1$을 출력하여라.
만약 $A$를 $B$로 바꿀 수 있다면, 두 번째 줄부터 $Q$개의 줄 중 $i$번째 줄에, 수열 $A$를 $B$로 바꾸는 과정의 $i$번째 연산에서 선택하는 두 수 $l$과 $r$을 공백으로 구분하여 출력하여라.
만약 $A$를 $B$로 바꿀 수 있다면, 두 번째 줄부터 $Q$개의 줄 중 $i$번째 줄에, 수열 $A$를 $B$로 바꾸는 과정의 $i$번째 연산에서 선택하는 두 수 $l$과 $r$을 공백으로 구분하여 출력하여라.
예제 1
예제 입력 1
5 3 1 2 5 4 1 2 3 4 5
예제 출력 1
2 1 2 2 5
예제 2
예제 입력 2
2 1 2 1 2
예제 출력 2
2 1 2 1 2
문제 정보
| 출처 | school > 경기과학고등학교 |
|---|---|
| 출제자 | annyeong1 |
| 검수자 | - |