AT_abc255_f.[ABC255F] Pre-order and In-order

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

考虑一棵有 NN 个顶点、编号为 1,2,…,N1, 2, \ldots, N 的二叉树。这里,二叉树指的是每个顶点最多有 22 个子节点的有根树。更具体地说,二叉树中的每个顶点最多有 11 个左子节点和最多 11 个右子节点。

请判断是否存在以顶点 11 为根的二叉树,满足以下条件,并在存在时给出一个例子。

  • 用深度优先搜索的先序遍历得到的所有顶点的排列为 (P1,P2,…,PN)(P_1, P_2, \ldots, P_N)。
  • 用深度优先搜索的中序遍历得到的所有顶点的排列为 (I1,I2,…,IN)(I_1, I_2, \ldots, I_N)。

输入格式

输入通过标准输入按以下格式给出。

NN P1P_1 P2P_2 …\ldots PNP_N I1I_1 I2I_2 …\ldots INI_N

输出格式

如果不存在满足题目条件、以顶点 11 为根的二叉树,则输出 −1-1。
如果存在,请输出满足条件的二叉树的一个例子,按照如下格式输出 NN 行。即,对于 i=1,2,…,Ni = 1, 2, \ldots, N,第 ii 行输出顶点 ii 的左子节点编号 LiL_i 和右子节点编号 RiR_i。如果没有左子节点(或右子节点),则 LiL_i(或 RiR_i)输出 00。
如果存在多个满足条件的以顶点 11 为根的二叉树,输出其中任意一个均可。

L1L_1 R1R_1
L2L_2 R2R_2
⋮\vdots
LNL_N RNR_N

输入输出样例

  • 输入#1

    6
    1 3 5 6 4 2
    3 5 1 4 6 2

    输出#1

    3 6
    0 0
    0 5
    0 0
    0 0
    4 2
  • 输入#2

    2
    2 1
    1 2

    输出#2

    -1

说明/提示

限制条件

  • 2≤N≤2×1052 \leq N \leq 2 \times 10^5
  • NN 是整数
  • (P1,P2,…,PN)(P_1, P_2, \ldots, P_N) 是 (1,2,…,N)(1, 2, \ldots, N) 的一个排列
  • (I1,I2,…,IN)(I_1, I_2, \ldots, I_N) 是 (1,2,…,N)(1, 2, \ldots, N) 的一个排列

样例解释 1

如下图所示,以顶点 11 为根的二叉树满足题目中的条件。

样例解释 2

不存在满足题目条件、以顶点 11 为根的二叉树。因此输出 −1-1。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页