#SIM301. 车站检票口

SIM301 车站检票口

难度梯度:T2 入门|训练重点:多条件判定与状态表

题目描述

车站有 N 张车票,编号为 1 至 N。第 i 张票指定的乘客编号为 owner_i,允许使用次数为 limit_i。车站依次处理 Q 次检票请求,每次给出车票编号 id 和乘客编号 person。 若车票还有剩余次数,且 person 与指定乘客相同,检票成功,剩余次数减 1;否则失败,车票状态不变。每次请求输出结果和该票处理后的剩余次数。最后输出所有车票的剩余次数。

每次请求都要输出一行;同一张票可以反复请求,但总成功次数不能超过它当前的剩余次数。乘客编号仅用于判定,不能更改车票归属。

输入格式

第一行 N Q。接下来 N 行,每行 owner_i limit_i。接下来 Q 行,每行 id person。所有请求 id 均合法。

输出格式

先输出 Q 行,每行 OK remaining 或 FAIL remaining;最后一行输出 N 张票的剩余次数,用空格隔开。

样例输入

2 5
10 2
20 1
1 10
2 10
1 10
1 10
2 20

样例输出

OK 1
FAIL 1
OK 0
FAIL 0
OK 0
0 0

样例说明

第 2 次乘客不匹配;第 4 次票 1 次数已用完。

数据范围

1≤N,Q≤2×10^5;1≤owner_i,person≤10^9;0≤limit_i≤10^9。

子任务

20 分:N,Q≤100;30 分:每张票最多用 1 次;50 分:无附加限制。


Problem Info

#SIM301. 车站检票口

ID 10333
类型 传统题
时间 1000ms
内存 256MiB
尝试 2 已通过 2
难度 1
上传者
标签
模拟状态维护T2