#P14600. [NWRRC 2025] Asynchronous Processor

[NWRRC 2025] Asynchronous Processor

Description

给定一个由 nn 条指令组成的程序,这些指令由一个具有单个整数寄存器 AA 的处理器执行,初始值为 00。每条指令是以下两种类型之一:

  • + v\texttt{+ v} —— 执行 A:=A+vA := A + v
  • = v\texttt{= v} —— 执行 A:=vA := v

程序中的指令从 11nn 编号。每条指令 ii 初始时间戳为 ii

有些指令被标记为 异步。如果指令 ii 是异步的,其时间戳可以更改为任何大于 ii实数

在所有时间戳调整之后,所有时间戳必须互不相同。处理器随后按时间戳递增的顺序执行指令。

确定在执行所有指令后,考虑所有可能的异步指令时间戳选择,AA 可以得到的不同的最终值的数量。

Input Format

第一行包含一个整数 nn,表示程序中的指令数量(1n20001 \le n \le 2000)。

接下来的 nn 行中,第 ii 行描述指令 ii,包含三个标记。第一个标记是 +\texttt{+}=\texttt{=},表示指令的类型。第二个标记是一个整数 vv,表示指令的参数(1v5001 \le v \le 500)。最后,第三个标记是 async\texttt{async}(如果指令被标记为异步)或 sync\texttt{sync}(否则)。

Output Format

输出执行程序后 AA 可以取到的不同最终值的数量。


2

30

Hint

在第一个测试中,程序执行从指令 11AA 设置为 11 开始。然后,指令 2233 按以下两种顺序之一执行:

  • 如果 = 2\texttt{= 2}+ 3\texttt{+ 3} 之前执行,AA 将等于 55
  • 如果 + 3\texttt{+ 3}= 2\texttt{= 2} 之前执行,AA 将等于 22

因此,最后 AA 有两个可能的值:5522


翻译由 DeepSeek V3 完成