#include <stdio.h>
#define MAX 10
int input[3][MAX];
int num[3][MAX];
int main()
{
freopen("input.txt", "r", stdin);
int T, test_case;
int N;
int flag;
int count;
int i, j, k;
setbuf(stdout, NULL);
scanf("%d", &test_case);
for (T = 1; T <= test_case; ++T)
{
flag = count = 0;
scanf("%d", &N);
for (i = 0; i < N; ++i)
{
scanf("%d", &input[0][i]);
num[1][i + 1] = num[2][i + 1] = 0;
}
for (i = 1; i <= 2; i++)
{
for (j = 0; j < N; ++j)
{
scanf("%d", &input[i][j]);
num[i][input[i][j]]++; // 1째 줄에는 인덱스 숫자가 값만큼 있음
}
}
while (!flag)
{
flag = 1;
for (i = 0; i < N; i++)
{
if (input[0][i] && (!num[1][input[0][i]] || !num[2][input[0][i]])) // 첫줄에 숫자가 있고,
{ // 첫줄을 기준으로 일치 하지 못하는 열은 삭제해야 함
input[0][i] = 0;
num[1][input[1][i]]--;
num[2][input[2][i]]--;
flag = 0;
++count;
}
}
}
printf("#%d %d\n", T, count);
}
return 0;
}
댓글