CF2038J.Waiting for...

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Waiting for...

题目描述

Monocarp 正在车站等公共汽车。不幸的是,也有很多人想乘坐公共汽车。

你会得到两类事件的列表:

  • B bib_i :有 bib_i 个免费座位的巴士到达车站;
  • P pip_ipip_i 人到站。

这些事件是按时间顺序列出的。

当公共汽车到达时,会发生以下情况。公车站的所有人(除了 Monocarp )都试图上车。如果所有人都有足够的空位,他们就都上车。否则,有些人会留在公交车站(上车的人数等于免费座位的数量)。

如果在所有人(除了 Monocarp )进入公共汽车后仍然至少有一个空闲座位,那么 Monocarp 可以决定也进入这辆公共汽车(但他可能选择等待另一辆公共汽车)。对于每一辆公共汽车,您必须确定 Monocarp 是否有可能乘坐该公共汽车。

输入格式

第一行包含一个整数 n(1n103)n (1 \le n \le 10^3) —事件的数量。

然后是 nn 行。其中第 ii 行为以下两种格式之一:

  • B bi(1bi106)b_i ( 1 \le b_i \le 10^6 ) -一辆有 bib_i 免费座位的巴士到达车站;
  • P pi(1pi106)p_i ( 1 \le p_i \le 10^6 ) - pip_i 人到站。

输入的附加约束:至少有一个B类型的事件。

输出格式

对于类型B的每个事件,如果 Monocarp 可以乘坐该辆车,则输出 YES,否则输出 NO (不区分大小写)。

样例

10
P 2
P 5
B 8
P 14
B 5
B 9
B 3
P 2
B 1
B 2
YES
NO
NO
YES
NO
YES

在线编程 IDE

建议全屏模式获得最佳体验