비슷한 도시
시간 제한2초메모리 제한128 MB
두 도시의 시청에서 같은 숫자열을 따라 이동할 때 정확히 한 도시에서만 집에 도착하는 가장 짧은 숫자열을 구합니다.
문제
SBP(초부유국)에는 아주 많은 도시가 있습니다. 모든 도시에는 집, 상점, 그리고 시청이 하나씩 있습니다. SBP는 매우 질서정연한 나라여서 모든 도시에는 차수가 정해져 있습니다. 차수가 라는 것은 모든 건물에서 번부터 번까지 번호가 붙은 일방통행 도로가 정확히 개씩 나간다는 뜻입니다.
시청에서 출발하는 경로가 특히 중요합니다. 그런 경로는 지나간 도로 번호들을 순서대로 나열한 수열로 나타낼 수 있습니다. 예를 들어 수열 이 나타내는 경로는 다음과 같이 이동합니다.
- 시청에서 출발합니다. 번 도로를 따라 건물 로 이동합니다.
- 건물 에서 번 도로를 따라 건물 로 이동합니다.
- 건물 에서 번 도로를 따라 건물 로 이동합니다.
- 경로는 건물 에서 끝납니다. 는 집일 수도, 상점일 수도, 시청일 수도 있습니다.
차수 가 같은 두 도시의 도로 배치가 주어집니다. 두 도시 중 한 도시에서는 시청에서 집까지의 경로를 나타내고, 다른 도시에서는 시청에서 집이 아닌 건물(상점 또는 시청)까지의 경로를 나타내는 가장 짧은 수열을 찾으세요. 즉, 경로의 끝이 집인지 아닌지에 대해 두 도시의 결과가 서로 다른, 가장 짧은 수열을 찾으면 됩니다.
각 도로 번호는 부터 까지의 한 자리 숫자이며(), 수열은 도로 번호를 구분 기호 없이 이어 붙여 표기합니다.
입력
첫 줄에 테스트 케이스의 수 가 주어집니다(). 각 테스트 케이스는 다음과 같이 주어집니다.
각 테스트 케이스의 첫 줄에는 다섯 정수 , , , , 가 주어집니다(, , , ). 각각 첫 번째 도시의 건물 수, 첫 번째 도시의 집 수, 두 번째 도시의 건물 수, 두 번째 도시의 집 수, 그리고 두 도시가 공유하는 차수입니다.
각 도시에서 시청은 번 건물이고, 집은 번부터 번까지, 상점은 번부터 번까지입니다.
이어지는 개의 줄은 첫 번째 도시를 나타냅니다. (건물을 번부터 셀 때) 번째 줄에는 부터 사이의 정수 개가 있으며, 이는 건물 에서 나가는 번 도로의 도착 건물입니다. 그다음 개의 줄은 같은 방식으로 두 번째 도시를 나타냅니다. 같은 두 건물을 잇는 도로가 여러 개일 수 있고, 시작과 끝이 같은 건물인 도로도 있을 수 있습니다.
출력
개의 줄을 출력합니다. 번째 줄에는 번째 테스트 케이스의 답을 씁니다. 조건을 만족하는 수열이 없으면 하나만 출력합니다. 그렇지 않으면 가장 짧은 수열의 길이를 출력하고, 공백 하나를 둔 뒤 그 수열을 출력합니다. 가장 짧은 수열이 여러 개이면 사전순으로 가장 앞서는(사전에서 가장 먼저 나오는) 수열을 출력합니다.