#dfs
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#define MAX 200005
#define INF 987654321
#define MOD 31991
#pragma warning(disable:4996)
using namespace std;
typedef long long ll;
typedef pair<int, int> pi;
int n, pre[1000], node[1000];
void dfs(int now,int s, int e)
{
int i;
if (s > e)
return;
if (s == e)
{
printf("%d ", pre[now]);
return;
}
for (i = s; i <= e; i++)
if (node[i] == pre[now])
break;
dfs(now+1,s, i - 1);
dfs(now+i-s+1,i + 1, e);
printf("%d ", pre[now]);
return;
}
int main()
{
int tc;
scanf("%d", &tc);
while (tc--)
{
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &pre[i]);
for (int i = 0; i < n; i++)
scanf("%d", &node[i]);
dfs(0, 0, n - 1);
printf("\n");
}
return 0;
}'IT > BOJ' 카테고리의 다른 글
| 백준(BOJ) 2042 구간 합 구하기 ** (0) | 2018.09.17 |
|---|---|
| 백준(BOJ) 2512 예산 ** (0) | 2018.09.14 |
| 백준(BOJ) 11067 피타고라스 기대값 * (0) | 2018.08.21 |
| 백준(BOJ) 10250 ACM 호텔 * (0) | 2018.08.21 |
| 백준(BOJ) 13333 Q-인덱스 * (0) | 2018.08.17 |