#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 分:无附加限制。