본문 바로가기
백준알고리즘/시뮬레이션

(Python/🥈3)백준알고리즘22858번: 원상복구

by windy7271 2023. 10. 9.
728x90
반응형

원상 복구

 

문제 바로가기 

 

문제:

  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까지의 값들을 공백으로 구분해서 출력한다.

 

 

반응형

댓글