AT_tkppc2016_i.ボス(Boss)

通过率:0%

AC君温馨提醒

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

题目描述

joisino姐姐的下一个工作是调整Boss战的难度。
这个Boss的身体由像格子一样排列的细胞组成,从最左上角的细胞向右移动 xx,向下移动 yy 的位置的细胞用坐标 (x,y)(x, y) 表示。
在与Boss的战斗过程中,将会发生 NN 次事件。事件分为以下三种类型之一:

  1. 事件 1

    • 给定整数 L,RL, R。假设这是第 KK 次事件 1,则 yy 坐标为 K−1K-1,xx 坐标在 LL 到 RR 之间的细胞会被弱体化。
  2. 事件 2

    • 给定整数 KK,表示解除 yy 坐标为 KK 的细胞的弱体化。保证此时 yy 坐标为 KK 的细胞中一定存在被弱体化的细胞。
  3. 事件 3

    • 给定整数 L,RL, R,你有一次攻击Boss的机会。
    • 你可以选择一个存在弱体化部分的 yy 坐标 KK,假设该 yy 坐标下弱体化的细胞区间为 xx 坐标 AA 到 BB,仅当 A<LA < L 且 R<BR < B 时,才能对该部分进行攻击。
    • 攻击时,可以对Boss造成 (L−A)×(B−R)(L-A) \times (B-R) 的伤害。

为了调整难度,需要事先知道在所有事件 3 中,对Boss能够造成的最大伤害。
joisino姐姐的任务是编写一个程序,求出每次事件 3 能对Boss造成的最大伤害。

输入格式

输入通过标准输入给出。

  • 第 1 行输入一个整数 NN,表示接下来将发生的事件数 NN(1≤N≤2×1051 \leq N \leq 2 \times 10^5)。
  • 接下来的 NN 行中,第 ii 行描述第 ii 个事件的信息。
  • 每行的开头是一个整数 TiT_i(1≤Ti≤31 \leq T_i \leq 3),表示事件的类型。
  • 若 Ti=1T_i = 1,则接下来有两个整数 LiL_i(0≤Li≤1090 \leq L_i \leq 10^9)、RiR_i(Li≤Ri≤109L_i \leq R_i \leq 10^9),表示这是第 KK 次事件 1,则 yy 坐标为 K−1K-1,xx 坐标在 LiL_i 到 RiR_i 之间的细胞被弱体化。
  • 若 Ti=2T_i = 2,则接下来有一个整数 KiK_i,表示解除 yy 坐标为 KiK_i 的细胞的弱体化。
  • 若 Ti=3T_i = 3,则接下来有两个整数 LiL_i(0≤Li≤1090 \leq L_i \leq 10^9)、RiR_i(Li≤Ri≤109L_i \leq R_i \leq 10^9),表示你有一次攻击Boss的机会。

输出格式

对于每一次事件 3,输出能够对Boss造成的最大伤害,输出一行。
如果没有任何 yy 坐标可以进行攻击,则输出 −1-1。

输入输出样例

  • 输入#1

    9
    1 0 10
    1 2 12
    3 5 5
    3 8 9
    2 0
    3 5 5
    3 8 9
    2 1
    3 5 5

    输出#1

    25
    18
    21
    18
    -1
  • 输入#2

    7
    1 3 7
    1 0 6
    1 4 10
    3 1 3
    3 6 7
    3 5 5
    3 4 6

    输出#2

    3
    6
    5
    1
  • 输入#3

    20
    3 268323303 605806817
    3 397106901 526645597
    1 242167025 963419065
    3 306157656 666722488
    3 90905255 723611215
    1 135062270 656996756
    1 72048580 708895403
    1 254360876 741288738
    3 353173849 652094091
    3 274378199 520888695
    1 128877839 722596185
    3 367349293 905356554
    3 336742409 649201453
    1 353239854 521572577
    2 3
    3 5185803 799351855
    1 139746807 783110900
    3 375190636 656724546
    1 462675641 992773167
    1 77055484 555060299

    输出#3

    -1
    -1
    18985801177770087
    -1
    34559196595622576
    38039325599084252
    7268396812754948
    29717251314463008
    -1
    40797612391288109

说明/提示

配分

本题设有部分分。

  • 数据集 1 满足 N(1≤N≤3×103)N(1 \leq N \leq 3 \times 10^3),全部正确可得 5 分。
  • 数据集 2 无额外限制,全部正确可得 155 分。

样例解释 1

  1. 前两次事件的弱体化后,Boss 的状态如下图所示(红色部分为弱体化区域)。
  2. 下一次攻击机会时,攻击 yy 坐标 00,可以造成 (5−0)×(10−5)=25(5-0) \times (10-5) = 25 的伤害。
  3. 下一次攻击机会时,攻击 yy 坐标 11,可以造成 (8−2)×(12−9)=18(8-2) \times (12-9) = 18 的伤害。
  4. 下一次弱体化解除后,Boss 的状态如下图所示。
  5. 下一次攻击机会时,攻击 yy 坐标 11,可以造成 (5−2)×(12−5)=21(5-2) \times (12-5) = 21 的伤害。
  6. 下一次攻击机会时,攻击 yy 坐标 11,可以造成 (8−2)×(12−9)=18(8-2) \times (12-9) = 18 的伤害。
  7. 下一次弱体化解除后,Boss 的状态如下图所示。
  8. 下一次攻击机会时,没有可以攻击的 yy 坐标,因此输出 −1-1。

由 ChatGPT 4.1 翻译

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

首页