U143214.今天植树节……骗你的,不是

NOI/NOI+/CTSC

COCI

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

题目背景

STEVE在更多的树苗mod中发现了一种神奇的树苗,名为 “二叉树树苗” 。这种树苗种下后,不会长出枝叶,而是在数据世界中自动构建一棵完美的二叉搜索树(BST)。史蒂夫可以在任意整数坐标上种下一棵树苗,每个坐标只能种一棵,树苗的高度可以是任意整数(负数代表枯萎)。

他每天进行四种操作:

  1. 种树:在位置 x 种一棵高度为 h 的树苗。
  2. 砍树:移除位置 x 的树苗。
  3. 查询:询问位置 x 的树苗高度。
  4. 最高树:询问当前所有树苗中,高度最高的那棵的位置和高度。

史蒂夫是个极简主义者,他要求你必须使用二叉树(如二叉搜索树、红黑树、AVL树等)来实现这些操作,否则他会嫌你代码太“线性”而拒绝接收。

输入格式

输入格式

第一行一个整数 n1 ≤ n ≤ 2×10^5),表示操作总数。
接下来 n 行,每行一个操作,格式为:

  • plant x h:在位置 x 种一棵高度为 h 的树苗。
  • remove x:移除位置 x 的树苗。
  • query x:查询位置 x 的树苗高度。
  • max:查询当前所有树苗中高度最高的那棵的位置和高度。

所有 xh 均为整数,范围 [-10^9, 10^9]

输出格式

输出格式

  • 对于每个 query x,若该位置有树苗,输出其高度,否则输出 -1
  • 对于每个 max,若存在树苗,输出位置和高度(空格分隔),否则输出 -1 -1

输入输出样例

  • 输入#1

    6
    plant 5 10
    plant 3 7
    query 5
    max
    plant 5 20
    query 5

    输出#1

    10
    3 7
    10

说明/提示

数据范围与约定

  • 1 ≤ n ≤ 2×10^5
  • x, h ∈ [-10^9, 10^9]
  • 时间限制:2s
  • 内存限制:256MB

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

首页