CF19D.Points

省选/NOI-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

Pete and Bob invented a new interesting game. Bob takes a sheet of paper and locates a Cartesian coordinate system on it as follows: point (0, 0) is located in the bottom-left corner, Ox axis is directed right, Oy axis is directed up. Pete gives Bob requests of three types:

  • add x y — on the sheet of paper Bob marks a point with coordinates (x, y). For each request of this type it's guaranteed that point (x, y) is not yet marked on Bob's sheet at the time of the request.
  • remove x y — on the sheet of paper Bob erases the previously marked point with coordinates (x, y). For each request of this type it's guaranteed that point (x, y) is already marked on Bob's sheet at the time of the request.
  • find x y — on the sheet of paper Bob finds all the marked points, lying strictly above and strictly to the right of point (x, y). Among these points Bob chooses the leftmost one, if it is not unique, he chooses the bottommost one, and gives its coordinates to Pete.

Bob managed to answer the requests, when they were 10, 100 or 1000, but when their amount grew up to 2·105, Bob failed to cope. Now he needs a program that will answer all Pete's requests. Help Bob, please!

皮特和鲍勃发明了一种新颖有趣的博弈。鲍勃取一张纸,在其上建立一个笛卡尔坐标系:原点 (0, 0)(0, 0) 位于左下角,OxOx 轴向右为正方向,OyOy 轴向上为正方向。皮特向鲍勃发出三种类型的请求:

  • add x y — 鲍勃在纸上标记坐标为 (x, y)(x, y) 的点。对于此类请求,保证在请求发生时刻,点 (x, y)(x, y) 尚未被标记在鲍勃的纸上。
  • remove x y — 鲍勃在纸上擦除此前已标记的坐标为 (x, y)(x, y) 的点。对于此类请求,保证在请求发生时刻,点 (x, y)(x, y) 已被标记在鲍勃的纸上。
  • find x y — 鲍勃在纸上找出所有严格位于点 (x, y)(x, y) 上方且严格位于其右侧的已标记点(即满足 x′>xx' > x 且 y′>yy' > y 的点 (x′,y′)(x', y'))。在这些点中,鲍勃选出横坐标最小者;若横坐标最小的点不唯一,则从中选出纵坐标最小者,并将该点的坐标告知皮特。

当请求数量为 1010、100100 或 10001000 时,鲍勃尚能手动完成应答;但当请求数量增长至 2⋅1052 \cdot 10^5 时,鲍勃便无法胜任了。现在他需要一个程序来自动处理皮特的所有请求。请帮助鲍勃!

输入格式

The first input line contains number n (1 ≤ n ≤ 2·105) — amount of requests. Then there follow n lines — descriptions of the requests. add x y describes the request to add a point, remove x y — the request to erase a point, find x y — the request to find the bottom-left point. All the coordinates in the input file are non-negative and don't exceed 109.

第一行输入包含一个整数 nn(1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5)—— 请求的总数。随后是 nn 行,每行描述一个请求:add x y 表示添加一个点的请求,remove x y 表示删除一个点的请求,find x y 表示查找左下角点的请求。输入文件中的所有坐标均为非负数,且不超过 10910^9。

输出格式

For each request of type find x y output in a separate line the answer to it — coordinates of the bottommost among the leftmost marked points, lying strictly above and to the right of point (x, y). If there are no points strictly above and to the right of point (x, y), output -1.

对于每个类型为 find x y 的查询,请在单独一行中输出其答案——即所有严格位于点 (x, y)(x, y) 右上方的已标记点中,最左侧的点中纵坐标最小(即最靠下)的那个点的坐标。若不存在严格位于点 (x, y)(x, y) 右上方的点,则输出 -1。

输入输出样例

  • 输入#1

    7
    add 1 1
    add 3 4
    find 0 0
    remove 1 1
    find 0 0
    add 1 1
    find 0 0

    输出#1

    1 1
    3 4
    1 1
  • 输入#2

    13
    add 5 5
    add 5 6
    add 5 7
    add 6 5
    add 6 6
    add 6 7
    add 7 5
    add 7 6
    add 7 7
    find 6 6
    remove 7 7
    find 6 6
    find 4 4

    输出#2

    7 7
    -1
    5 5

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

首页