QOJ.ac

QOJ

実行時間制限: 10 s メモリ制限: 128 MB 満点: 100

#3821. 停车场

統計

M 镇的集市是一个受欢迎的旅游景点,但由于其独特的交通政策,没有车很难到达那里。交通部门决定将所有电车和公共汽车从市中心移走,因为它们阻碍了汽车通行。但汽车需要停车位,而市中心并没有多少停车位。因此,集市周围的小街道被改造成了非常长的平行停车位。年轻的 Johnny 虽然还没有车,但他已经在积极支持这项计划,因为他得到了一份新工作,负责管理其中一个新停车场。不幸的是,他不太擅长这份新工作,所以他肯定需要你的帮助。

Johnny 被分配到的街道长度为 $d$。他的工作是告诉即将到来的司机他们应该把车停在哪里,或者通知他们车太长停不下。形式上,他需要处理两种事件: 一辆长度为 $l_i$、车牌号为 $p_i$ 的汽车驶来; 车牌号为 $p_i$ 的汽车离开。

当一辆车驶来时,Johnny 必须找到能容纳该车的、最短的可用连续空位。如果有多个这样的位置,他应该选择最靠近集市的那一个(即从停车场起点看最早的位置)。汽车司机是平行停车的大师,他们的车辆非常灵活,总是停在 Johnny 找到的空间的最前端;以至于他们可以紧贴前车,在极端情况下,他们甚至可以同时紧贴前车和后车。这种紧凑的停车方式即使在离开停车场时也不会造成问题。

输入格式

输入的第一行包含两个整数 $d$ 和 $q$,用空格分隔,分别表示停车场的长度和事件的数量($1 \le d \le 10^9$,$1 \le q \le 10^6$)。

接下来的 $q$ 行,每行以一个字母 P 或 O 开头,表示事件的类型(分别为汽车驶来和汽车离开),后跟一个空格和一个车牌号 $p_i$。车牌号是一个非空字符串,最多包含 10 个字符,每个字符要么是小写拉丁字母(a-z),要么是数字(0-9)。

如果该行描述的是汽车驶来,那么它在车牌号后还会包含一个空格,以及该车的(整数)长度 $l_i$($1 \le l_i \le 10^9$)。

每辆车最多尝试寻找一次停车位:游客从不访问集市超过一次,如果他们找不到停车位,这一点就更是如此。

如果该行描述的是汽车离开,则不再包含其他内容。但是,保证车牌号 $p_i$ 对应于一辆已经尝试过寻找停车位的汽车。注意,该车不一定找到了停车位,即使在这种情况下,它也不必立即离开(即其他车辆可能在它之前离开),甚至可能根本不离开。

输出格式

输出应包含恰好 $q$ 行,每行描述输入中下一个事件的结果。

描述汽车驶来的事件的结果是一个整数 $o_i$ —— 该车应停放的位置(从停车场起点开始计算),如果无法停放该车,则输出单词 NIE。

描述汽车离开的事件的结果是单词 OK(如果该车确实停放了且现在正在离开),否则输出单词 BRAK。

样例

输入 1

10 7
P dw12345 1
P dwr12345 2
P we11111 8
O dw12345
P d0icpc 3
P dw000xx 1
O we11111

输出 1

0
1
NIE
OK
3
0
BRAK

说明

每次操作后停车场的状态如下图所示:

汽车 dw12345dwr12345 先后停在位置 0 和 1。汽车 we11111 太长,无法停放。在 dw12345 离开后,d0icpc 停在 dwr12345 后面,位置为 3,然后 dw000xx 停在 dw12345 腾出的位置 0。由于 we11111 没有找到停车位,其离开操作的答案为 BRAK。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.