정렬된 두 카드 더미가 주어질 때, 서로 가지고 있지 않은 서로 다른 종류의 카드를 각각 N장씩 교환할 수 있는 최대 N을 구한다.
쉬움3투 포인터배열해시맵면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB앨리스와 베아트리스는 포켓몬 카드를 모은다. 이 카드로 하는 배틀 게임도 있지만, 두 사람은 아직 어려서 게임은 하지 않고 카드 자체에만 관심이 있다. 카드에는 정수 번호가 하나씩 붙어 있고, 번호가 같은 카드는 같은 종류로 본다.
두 사람은 각자 카드를 여러 장 가지고 있고, 서로 카드를 바꾸고 싶어 한다. 교환에는 두 가지 조건이 있다. 둘 다 가지고 있는 종류의 카드는 바꾸지 않는다. 그리고 교환으로 받는 카드에 같은 종류가 두 장 이상 들어가면 안 된다. 교환은 한 번에 끝난다. 앨리스가 종류가 서로 다른 카드 N장을 베아트리스에게 건네고, 베아트리스도 종류가 서로 다른 카드 N장을 앨리스에게 건넨다.
두 사람이 주고받을 수 있는 N의 최댓값을 구하는 프로그램을 작성하라.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 앨리스가 가진 카드의 개수 A와 베아트리스가 가진 카드의 개수 B가 공백 하나로 구분되어 주어진다 (1≤A≤104, 1≤B≤104). 둘째 줄에는 앨리스가 가진 카드의 번호 Xi가 A개, 공백으로 구분되어 주어진다 (1≤Xi≤105). 셋째 줄에는 베아트리스가 가진 카드의 번호 Yi가 B개, 공백으로 구분되어 주어진다 (1≤Yi≤105). 두 사람의 카드 번호는 각각 비내림차순으로 주어진다.
입력의 마지막 줄에는 0 두 개가 공백 하나로 구분되어 주어진다. 이 줄은 테스트 케이스가 아니다.
각 테스트 케이스마다 앨리스와 베아트리스가 서로 주고받을 수 있는 카드 수의 최댓값을 한 줄에 하나씩 출력한다.