#CF1455G. 禁止值

    ID: 1260 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>2900Codeforces动态规划线段树离线处理

禁止值

禁止值

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

一个程序中的整数变量 xx 初始值为 00。随后,程序按顺序执行下列三种行:

  • set y v:把 xx 赋值为 yy。你也可以预先花费 vv 删除这一行,被删除的行不会修改 xx。
  • if y:当且仅当当前 x=yx=y 时,执行与它匹配的 end 之前的所有行;否则跳过整个块。
  • end:结束最近的尚未结束的 if 块。

if 块可以嵌套。所有 if 与 end 都严格匹配。

禁止值为 ss。只要某条未删除的 set 实际被执行并把 xx 赋为 ss,程序就会立即损坏。

你需要选择若干条 set 删除,使程序的实际执行过程中从不把 xx 赋为 ss。求最小总花费。

输入格式

第一行包含两个整数 n,sn,s,分别表示程序的行数和禁止值。

接下来 nn 行,每行为以下三种格式之一:

  • set y v;
  • if y;
  • end。

输出格式

输出一个整数,表示所需的最小总花费。

样例输入 1

5 1
set 1 10
set 2 15
if 2
set 1 7
end

样例输出 1

17

样例输入 2

7 2
set 3 4
if 3
set 10 4
set 2 7
set 10 1
end
set 4 2

样例输出 2

4

样例输入 3

9 200
if 0
set 5 5
if 5
set 100 13
end
if 100
set 200 1
end
end

样例输出 3

1

样例输入 4

1 10
set 1 15

样例输出 4

0

数据范围

1≤n≤2⋅1051\le n\le 2\cdot 10^5,1≤s≤2⋅1051\le s\le 2\cdot 10^5。

对于 set y v 与 if y,0≤y≤2⋅1050\le y\le 2\cdot 10^5;对于 set y v,1≤v≤1091\le v\le 10^9。

子任务编号 分值 特殊限制
1 20 n≤18n\le18
2 40 n≤2000n\le2000,且所有出现的数值不超过 20002000
3 无特殊限制

说明

花费可能超过 3232 位有符号整数范围。