#P2894. 旅馆房间管理(Hotel G)

0

旅馆房间管理(Hotel G)

旅馆房间管理(Hotel G)

题目描述

对一家有 nn 个房间(编号为 1∼n1 \sim n,开始都为空房)的宾馆维护以下操作:

  • 查询房间:你需要在 1,2,…,n1,2,\ldots,n 房间中找到长度为 xx 的连续空房。若找得到,在这 xx 个空房间中住上人。
  • 退房:房间号 x∼x+y−1x \sim x+y-1 退房,即让房间为空。

输入格式

第一行输入 n,mn,m,nn 代表有 nn 个房间 (1≤n≤50,000)(1\leq n \leq 50,000),编号为 1∼n1 \sim n,开始都为空房,mm 表示以下有 mm 行操作 (1≤m≤50,000)(1\leq m \leq 50,000),以下每行先输入一个数 ii,表示一种操作:

若 ii 为 11,表示查询房间,再输入一个数 xx。

若 ii 为 22,表示退房,再输入两个数 x,yx,y。

输出格式

对每个输入 11,输出连续 xx 个房间中左端的房间号,尽量让这个房间号最小,若找不到长度为 xx 的连续空房,输出 00。

样例输入 #1

10 6
1 3
1 3
1 3
1 3
2 5 5
1 6

样例输出 #1

1
4
7
0
5

数据范围

请使用高效率算法及 64 位整数(long long)避免溢出。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1600。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 25 2~8 小规模与边界测试数据
2 30 9~16 中等规模测试数据
3 35 17~25 满规模极限测试数据

出处:原题链接