[NOISG 2024 Prelim] Amusement Park

Luogu
IDLGP10711
Time1000ms
Memory1024MB
DifficultyP5
线段树2024NOISG(新加坡)
有一家游乐园,在大门处有一项观光车服务。很显然,一辆观光车只能承载有限的人数,那么如果一个团队来到大门时,发现观光车不够坐时,他们需要决定是否愿意分开。有些团队愿意,有些不愿意。 为了解决这个复杂的问题,公园的管理者蜗牛 Stuart 想请你帮忙写一个程序,支持以下三种操作: - `join`:一个新的团队进入了队列。我们用两个整数 $s,w$ 描述此次操作:$s$ 表示该团队的总人数;如果 $w=1$,那么这个团队愿意在乘坐观光车时分开;如果 $w=0$,表示他们不愿意分开。假设这次操作是所有操作中第 $i$ 次 `join` 操作,则该团队的编号为 $i$。 - `leave`:给定 $i$,编号为 $i$ 的团队从队伍中离开。 - `board`:给定 $b$,表示新开来一辆能坐 $b$ 人的观光车。从队头开始,如果到一个团队时,观光车可以承载所有人,那么所有人上车;否则如果该团队愿意分开,那么部分人上车;否则该团队留在原位置,在下一个团队重复该过程,直到观光车坐满,或没有人愿意上车。 ## Input 第一行,一个整数 $q$; 接下来 $q$ 行,每行一次操作,分为以下三种: - `1 s w`:描述一次 `join` 操作; - `2 i`:描述一次 `leave` 操作; - `3 b`:描述一次 `board` 操作。 ## Output 对于 `join` 和 `leave` 操作,你不需要输出任何内容。 对于每一次 `board` 操作,设有 $k$ 个团队有至少一个人上了观光车,你需要输出 $k+1$ 行: - 第一行一个整数 $k$。 - 接下来 $k$ 行,每行两个整数,第一个表示团队编号,第二个表示该团队上观光车的人数。**注意:团队编号应从小到大输出。**(如果 $k=0$,忽略此部分。) [samples] ## Background 翻译自 [NOI SG 2024 Prelim D.Amusement Park](https://github.com/noisg/noi-2024-prelim)。 ## Note ### 【数据范围】 |$\text{Subtask}$|分值|特殊性质| |:-:|:-:|:-:| |$0$|$0$|样例| |$1$|$12$|$q\le1000$| |$2$|$7$|$s=1,w=0$,没有 `leave` 操作| |$3$|$20$|$s\le10,w=0$,没有 `leave` 操作| |$4$|$16$|$s\le10$,没有 `leave` 操作| |$5$|$10$|$s\le10$| |$6$|$35$|无特殊性质| 对于 $100\%$ 的数据: - $1 \le q \le 200000$ - 对于所有 `join` 操作,$1 \le s \le 200000,0 \le w \le 1$。 - 对于所有 `leave` 操作,保证所有 $i$ 在操作时都在队列中。 - 对于所有 `board` 操作,$1 \le b \le 10^{12}$。 - 至少有一次 `board` 操作。
Samples
Input #1
7
1 2 0
1 6 0
1 6 1
3 5
2 2
1 3 0
3 123456789012
Output #1
2
1 2
3 3
2
3 3
4 3
Input #2
5
1 1 0
1 1 0
1 1 0
3 2
1 1 0
Output #2
2
1 1
2 1
Input #3
4
1 19 1
3 10
3 10
3 10
Output #3
1
1 10
1
1 9
0
API Response (JSON)
{
  "problem": {
    "name": "[NOISG 2024 Prelim] Amusement Park",
    "description": {
      "content": "有一家游乐园,在大门处有一项观光车服务。很显然,一辆观光车只能承载有限的人数,那么如果一个团队来到大门时,发现观光车不够坐时,他们需要决定是否愿意分开。有些团队愿意,有些不愿意。 为了解决这个复杂的问题,公园的管理者蜗牛 Stuart 想请你帮忙写一个程序,支持以下三种操作: - `join`:一个新的团队进入了队列。我们用两个整数 $s,w$ 描述此次操作:$s$ 表示该团队的总人数;如果 ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 1048576
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10711"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "有一家游乐园,在大门处有一项观光车服务。很显然,一辆观光车只能承载有限的人数,那么如果一个团队来到大门时,发现观光车不够坐时,他们需要决定是否愿意分开。有些团队愿意,有些不愿意。\n\n为了解决这个复杂的问题,公园的管理者蜗牛 Stuart 想请你帮忙写一个程序,支持以下三种操作:\n\n- `join`:一个新的团队进入了队列。我们用两个整数 $s,w$ 描述此次操作:$s$ 表示该团队的总人数;如果 ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments