아인타, 빈타, 그리고 씬타
시간 제한1.5초메모리 제한1024 MB
아인타가 A의 값으로 B와 C의 칸을 덮어써서, 정렬하고 중복을 없앤 두 수열이 같아지게 하며 그 길이 k의 최댓값을 구합니다.
문제
Ainta, Binta, Cinta는 각각 길이 의 수열을 가지고 있다. Ainta의 수열은 이고, Binta의 수열은 , Cinta의 수열은 이다.
심심한 Ainta가 Binta의 수열에 장난을 치기로 했다. Ainta는 인 를 골라 를 로 덮어쓸 수 있다. 교환이 아니라 덮어쓰기이므로, 는 값이 되고 는 그대로 남는다. 이 연산은 한 번 이상 해도 되고 전혀 하지 않아도 된다.
Ainta는 Cinta의 수열에도 같은 방식으로 장난을 쳤다. 이 장난은 Binta의 수열에 친 장난과 독립이다. 예를 들어 을 로 덮어썼다고 해서 에도 같은 장난을 칠 필요는 없다.
다음 날 Binta와 Cinta는 각자의 수열을 정렬한 뒤 중복된 원소를 모두 제거한다. 예를 들어 이면 정렬하여 을 만들고, 중복을 제거하여 을 얻는다. 이 작업을 마쳤을 때 두 수열이 같으면, Binta와 Cinta는 크게 감동하여 시간 동안 오열한다. 여기서 는 중복을 제거한 후 수열의 길이이다.
Ainta는 두 사람에게 최대한의 감동을 주려고 한다. 가능한 의 최댓값과, 그 최댓값을 얻을 수 있는 해를 출력하여라. 출력하는 해는 Binta와 Cinta가 중복을 제거한 후 얻은 수열이다. 인 답은 항상 존재한다.
입력
첫 번째 줄에 수열의 길이 이 주어진다. ()
두 번째 줄에 이 주어진다. ()
세 번째 줄에 이 주어진다. ()
네 번째 줄에 이 주어진다. ()
출력
첫 번째 줄에 가능한 최대 를 출력한다.
두 번째 줄에 개의 정수로, Binta와 Cinta가 최종적으로 얻게 될 수열을 출력한다. 가능한 답이 여러 가지면 그중 하나만 출력해도 된다.