수열 합치기
시간 제한1초메모리 제한1024 MB
N개의 수열을 입력받아 전체 원소 개수, A번째와 B번째 수열에 함께 나오는 수의 합, 쌍별 병합의 최종 수열을 구합니다.
문제
N개의 자연수 수열이 주어진다. 각 수열의 원소 개수는 미리 알려져 있다. 다음 세 가지 문제를 해결하라.
문제 #1
주어진 수열을 모두 차례로 이어 적으면, 적히는 수는 모두 몇 개인가?
문제 #2
A번째 수열과 B번째 수열에 모두 나타나는 수의 합은 얼마인가? 두 수열에서 반복되는 수는 한 번만 더한다.
문제 #3
두 수열을 다음 방식으로 하나로 합친다. 같은 위치(첫 번째, 두 번째, ...)에 있는 두 값을 비교하여 더 큰 값을 새 수열의 그 위치에 쓴다. 한 수열에 그 위치가 없으면, 위치가 있는 수열의 값을 새 수열의 그 위치에 쓴다.
주어진 N개의 수열을 차례로 두 개씩 짝지어(첫 번째와 두 번째, 세 번째와 네 번째, ...) 합치고, 수열이 하나만 남을 때까지 이 과정을 반복한다.
입력
첫째 줄에 자연수 N (1 ≤ N ≤ 128)이 주어진다. N은 2의 거듭제곱이다.
둘째 줄에 자연수 A와 B (1 ≤ A < B ≤ N)가 주어진다.
이어지는 N개의 줄에는 수열이 하나씩 주어진다. 각 줄의 첫 번째 수 M (1 ≤ M ≤ 99)은 그 수열의 원소 개수이고, 같은 줄에 M개의 자연수 Xi (1 ≤ Xi ≤ 99)가 이어서 주어진다.
출력
첫째 줄에 문제 #1의 답인 자연수를 출력한다.
둘째 줄에 문제 #2의 답을 출력한다.
셋째 줄에 최종적으로 합쳐진 수열의 첫 번째, 두 번째, ..., 마지막 위치의 값을 차례로 출력한다.
힌트
첫 번째 테스트 케이스 설명: 두 수열을 차례로 이어 적으면 여덟 개의 수가 적힌다. 첫 번째와 두 번째 수열에 모두 값 2가 나타난다. 두 수열을 합치면 [6 (24), 5 (5>2), 3, 1]이 된다.
두 번째 테스트 케이스 설명: 네 수열을 차례로 이어 적으면 스물한 개의 수가 적힌다. 세 번째와 네 번째 수열에 모두 나타나는 수는 2, 1, 3이다. 합치는 과정은 다음과 같다.