#CF1455G. 禁止值
禁止值
禁止值
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
一个程序中的整数变量 初始值为 。随后,程序按顺序执行下列三种行:
set y v:把 赋值为 。你也可以预先花费 删除这一行,被删除的行不会修改 。if y:当且仅当当前 时,执行与它匹配的end之前的所有行;否则跳过整个块。end:结束最近的尚未结束的if块。
if 块可以嵌套。所有 if 与 end 都严格匹配。
禁止值为 。只要某条未删除的 set 实际被执行并把 赋为 ,程序就会立即损坏。
你需要选择若干条 set 删除,使程序的实际执行过程中从不把 赋为 。求最小总花费。
输入格式
第一行包含两个整数 ,分别表示程序的行数和禁止值。
接下来 行,每行为以下三种格式之一:
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
数据范围
,。
对于 set y v 与 if y,;对于 set y v,。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | |
| 2 | 40 | ,且所有出现的数值不超过 |
| 3 | 无特殊限制 |
说明
花费可能超过 位有符号整数范围。