CHROM
면접 대비시간 제한2초메모리 제한512 MB
두 부모 순열과 교차점 n, m이 주어질 때, 부모 1의 [n, m) 구간은 그대로 두고 나머지 자리를 부모 2의 원소로 순서대로 채워 자손 순열을 만든다.
문제
염색체는 생물의 유전 물질(게놈)의 일부 또는 전부를 담고 있는 디옥시리보핵산(DNA) 분자이다. 하지만 이 문제에서는 다음과 같은 염색체의 정의에 관심을 둔다. "염색체(때로는 유전자형이라고도 한다)는 풀려는 문제에 대한 하나의 해답 후보를 정의하는 매개변수의 집합이다." 뒤의 정의에 따른 염색체를 디지털 염색체라고 부르기도 한다. 게다가 인간의 염색체와 달리 디지털 염색체는 여러 분야, 특히 산업 분야의 최적화 문제를 해결하기 위해 다양한 방식으로 교차시킬 수 있다.
헤라트 시는 산업으로 유명한데, 그곳에는 아프가니스탄 전역의 문구점에 우편엽서를 인쇄하는 회사가 있다. 이 회사에는 이 엽서를 인쇄하는 기계가 10대 있다. 그런데 엽서마다 설정이 다르기 때문에 인쇄 전에 기계를 준비해야 하고, 따라서 같은 주문을 연달아 배치해 설정 시간을 줄일 수 있도록 주문 순서의 최적 순열을 찾아야 한다. 또한 모든 주문에는 수량과 납기가 정해져 있다.
회사는 제한된 시간 안에 더 많은 엽서를 인쇄하기 위해 어떤 주문 순서를 따라야 하는지 알고 싶어 한다. 회사를 돕기 위해 모든 주문 순열을 탐색하여 최선의 주문 순서를 찾아야 한다. 하지만 탐색 공간이 너무 커서 실행에 오랜 시간이 걸린다. 대신 두 부모 염색체를 교차시켜 새로운 자손을 만들 수 있다. 회사가 사용하려는 교차 방식은 다음과 같다.
새 자손을 만들려면 크기가 같고 순열(주문 순서)은 다를 수 있는 두 부모가 필요하다. 두 부모는 염색체 길이에서 무작위로 고른 두 점을 이용해 교차한다. 자손은 첫 번째 부모로부터 교차점 사이에 있는 모든 주문 순서를, 첫 번째 부모에서와 같은 위치에 그대로 물려받는다. 그리고 나머지는 두 번째 교차점부터 시작해 두 번째 부모로부터 물려받는다.
입력
첫째 줄에는 테스트 케이스의 수 가 주어진다. ()
둘째 줄에는 첫 번째 교차점과 두 번째 교차점을 나타내는 두 정수 , 이 공백으로 구분되어 주어진다. () 첫 번째 교차점은 포함되지만 두 번째 교차점은 포함되지 않는다. 교차점은 염색체가 배열에 저장되어 있다고 가정하므로, 0은 염색체의 첫 번째 원소를 나타낸다.
셋째 줄과 넷째 줄에는 두 부모 염색체가 주어진다. 염색체의 주문은 공백으로 구분된다.
출력
교차 후의 새 자손을 출력한다.