본문 바로가기
카테고리 없음

교차 매칭 (Crossed Matchings)

by redcubes 2025. 3. 7.

교차 매칭 (Crossed Matchings)

시간 제한 메모리 제한
1 초 128 MB

문제

양의 정수가 적힌 두 행이 있습니다. 첫 번째 행에 있는 숫자와 두 번째 행에 있는 숫자 중 서로 값이 같은 r인 두 숫자 사이에 선분을 그을 수 있습니다. 이 선분을 r-매칭 선분이라고 부릅니다. 아래 그림은 3-매칭과 2-매칭 선분을 보여줍니다.

주어진 입력에 대해 다음 조건을 만족하면서 그릴 수 있는 최대 매칭 선분의 수를 찾고자 합니다:

1. 각 a-매칭 선분은 정확히 하나의 b-매칭 선분과 교차해야 합니다. 단, a ≠ b입니다.
2. 한 숫자에서 두 개의 매칭 선분을 그릴 수 없습니다. 예를 들어, 다음과 같은 매칭은 허용되지 않습니다.

입력 데이터에 대한 최대 매칭 선분의 수를 계산하는 프로그램을 작성하세요. 이 수는 항상 짝수임을 유의하세요.

입력

파일의 첫 줄은 테스트 케이스의 수 M입니다 (1 ≤ M ≤ 10). 각 테스트 케이스는 세 줄로 구성됩니다. 첫 번째 줄에는 첫 번째 행과 두 번째 행의 정수 개수 N1과 N2가 포함됩니다. 다음 줄에는 첫 번째 행의 N1개 정수가 있습니다. 세 번째 줄에는 두 번째 행의 N2개 정수가 있습니다. 모든 숫자는 100보다 작은 양의 정수입니다.

출력

출력 파일은 각 테스트 케이스에 대해 한 줄씩 별도로 표시해야 합니다. 각 테스트 케이스에 대한 최대 매칭 선분의 수를 별도의 한 줄에 작성해야 합니다.

예제 입력 1

3
6 6
1 3 1 3 1 3
3 1 3 1 3 1
4 4
1 1 3 3 
1 1 3 3 
12 11
1 2 3 3 2 4 1 5 1 3 5 10
3 1 2 3 2 4 12 1 5 5 3 

예제 출력 1

6
0
8