시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 | 1024 MB | 1184 | 726 | 573 | 61.946% |
$P_1, P_2, \cdots , P_N$의 수가 적혀 있는 $N$개의 카드가 있다.
1부터 N까지 수가 하나씩 존재하는 수열 $D_1, D_2, \cdots , D_i , \cdots , D_N$이 있다. 이때 각 $i$에 대해 $D_i$번째 카드를 $i$번째로 가져오는 작업을 셔플이라고 부른다.
예를 들어, $P_1, P_2, \cdots , P_N$이 1, 4, 5, 3, 2이고, $D_1, D_2, \cdots , D_N$가 4, 3, 1, 2, 5라고 가정해보자. 이 카드를 한번 섞으면 3, 5, 1, 4, 2가 된다. 아래 그림에서 $S$는 카드를 한 번 섞은 후를 의미한다.
위 방식을 그대로 $K$번 셔플한 카드의 정보와 $D$의 정보를 알고 있다고 할 때, 원래 카드는 어떤 배치를 이루고 있었는지 구해보자.
첫번째 줄에는 카드의 개수 $N$과 카드를 섞은 횟수인 $K$가 공백으로 구분되어 주어진다.
두번째 줄에는 $K$번 카드를 섞은 후 카드의 배치를 의미하는 $S_i$가 공백으로 구분되어 총 $N$개 주어진다.
세번째 줄에는 총 $N$개의 $D_i$이 공백으로 구분되어 주어진다.
원래 카드의 배치인 $P_1$부터 $P_N$까지의 값들을 공백으로 구분해서 출력한다.
5 2 4 1 3 5 2 4 3 1 2 5
1 4 5 3 2
4 1 4 3 2 1 4 3 2 1
1 2 3 4