#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//#define MAX 55
#define MAX 10
typedef struct node { //시작순으로 사용할 것임!!
int left;
int right;
}node;
node n[MAX];
int left_exist[MAX]; //left 존재하는지 확인
int right_exist[MAX]; //right 존재하는지 확인!
int num;
int main() {
freopen("input.txt", "r", stdin);
int testcase;
scanf("%d", &testcase);
int i, j, k;
int a, b;
//testcase = 1;
for (int abc = 0; abc < testcase; abc++) {
//init
for (i = 0; i < MAX; i++) {
left_exist[i] = right_exist[i] = 0;
}
scanf("%d", &num);
for (i = 0; i < num; i++) {
scanf("%d", &a);
scanf("%d", &b);
//시작점에 해당하는 대로 넣기
n[a].left = a;
n[a].right = b;
left_exist[a]++;
right_exist[b]++;
}//end for i
//for (i = 0; i < 6; i++){
// printf("%d %d %d\n", i, left_exist[i], right_exist[i]);
//}
int idx = 0;
//맨앞에 올만한거 찾기
for (i = 0; i < MAX; i++) {
if (left_exist[i]>0 && right_exist[i] == 0) {
idx = i;
break;
}
}
printf("#%d ", abc + 1);
//찾아서 출력
int cnt = 0;
while (1) {
if (num <= cnt) break;
printf("%d %d ", n[idx].left, n[idx].right);
idx = n[idx].right;
cnt++;
}
puts("");
}//end testcase
return 0;
}
댓글