#9843. 论坛帖子
论坛帖子
论坛帖子
说明
你是一个论坛的站长,论坛上有约 10 万个帖子,每个帖子编号为 1 到 100000。每个帖子下面又有若干个回复。现在告诉你每个帖子下面的回复人的 ID(ID 的范围为 1 到 100000)。现在你要写一个程序,支持插入操作,即 ADD x y
,表示编号为 x 的帖子有一个 ID 为 y 的人回复。支持查询操作,即 QUERY x y
,表示查询编号为 x 的帖子第 y 个回复的人的 ID。
输入格式
-
第 1 行一个整数 N,代表有 N 次询问(1 ≤ N ≤ 100000)。
-
第 2 行到第 N+1 行代表 N 次询问的内容,每行为以下 2 种格式之一:
ADD x y
新增加了一个回复,代表编号为 x 的帖子有一个 ID 为 y 的人回复。QUERY x y
代表查询编号为 x 的帖子第 y 个回复的人的 ID。
保证 1 ≤ x ≤ 100000,1 ≤ y ≤ 100000。
输出格式
- 对于每个
QUERY
的查询,每次输出占一行,代表编号为 x 的帖子第 y 个回复的人的 ID。如果编号为 x 的帖子总的回复数小于 y,则输出 -1。
样例输入
8
ADD 10 10086
ADD 10 10010
QUERY 10 1
QUERY 88888 1
ADD 88888 10010
ADD 88888 12580
QUERY 88888 2
QUERY 88888 3
样例输出
10086
-1
12580
-1
提示
- 对于
ADD x y
操作,你可以将回复 ID 添加到一个容器(如vector
)中,按顺序存储每个帖子下的回复。 - 对于
QUERY x y
操作,首先检查帖子x
是否存在至少y
个回复,如果存在则输出第y
个回复的 ID,否则输出 -1。
复杂度分析
- 时间复杂度:对于每次
ADD
操作,插入操作的时间复杂度为 O(1)。对于每次QUERY
操作,访问和检查回复列表的时间复杂度为 O(1)。 - 空间复杂度:需要存储每个帖子的所有回复,所以空间复杂度为 O(N),其中 N 是所有帖子的回复总数。