순열 마법
시간 제한2초메모리 제한1024 MB
A에 1부터 M까지의 치환을 적용해 B와 같은 자리를 가장 많이 만들고, 그중 사전순으로 가장 작은 수열을 출력합니다.
문제
길이가 같은 두 수열 과 이 있다. 는 의 번째 원소이며, 값은 1 이상 이하의 정수이다. 도 의 번째 원소이며 같은 조건을 따른다.
에는 마법을 딱 한 번 걸 수 있다. 1부터 까지의 정수로 이루어진 순열 을 준비하고, ()에 따라 를 로 바꾼다.
마법을 걸어 를 에 가깝게 만들려 한다. 두 수열의 거리는 해밍 거리로 정의하며, 대응하는 값이 서로 다른 위치의 개수이다.
가능한 모든 중에서 다음 두 조건을 만족하는 수열을 찾아라.
- 다른 어떤 가능한 도 와의 거리가 이 수열보다 작지 않다.
- 와의 거리가 같은 가능한 수열 가운데 사전순으로 가장 작다.
수열 이 같은 길이의 보다 사전순으로 작다는 것은, 모든 에 대해 이고 인 인덱스 가 존재한다는 뜻이다.
입력
입력은 다음 형식으로 주어진다.
첫 줄에는 두 정수 ()과 ()이 주어진다. 두 수열은 각각 개의 값을 가지며, 값은 1 이상 이하이다.
둘째 줄에는 개의 정수가 주어지며, 번째 정수는 ()이다.
셋째 줄에는 개의 정수가 주어지며, 번째 정수는 ()이다.
출력
개의 정수를 공백으로 구분해 출력한다. 번째 정수는 위의 모든 조건을 만족하는 수열의 번째 원소이다. 각 원소는 정수로 출력한다.