본문 바로가기
IT/BOJ

백준(BOJ) 4526 트리 *

by 빨강자몽 2018. 9. 8.

#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