#P14600. [NWRRC 2025] Asynchronous Processor

[NWRRC 2025] Asynchronous Processor

题目描述

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

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

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

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

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

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

输入格式

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

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

输出格式

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


2

30

提示

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

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

因此,最后 AA 有两个可能的值:55 和 22。


翻译由 DeepSeek V3 完成