计算机编程 旅馆的题目

发布时间:2024-05-15 20:57 发布:上海旅游网

问题描述:

旅馆(hotel)
hotel.cpp/pas/in/out
Time Limit: 2s

一家旅馆每天都要受到很多的入住、退房请求。设想旅馆中有n个房间,顺序排列在一条直线走廊的一边,依次编号为1, 2, …, n。由于管理上的一些问题,旅馆每次只能接受特定格式的请求。
当收到一个入住请求时,附带将有一个请求的规模d,即申请d个空房。此时你选择编号连续且最小的d个空房间提供给旅客,即这个d个房间安排为编号为x, x+1, x+2, …, x+d-1的房间,这些房间都是空的,且x是满足要求的最小正整数。如果目前旅馆的入住情况已无法提供d个连续的空房,那么你只能拒绝这个请求。当你接受这个入住申请后,上述房间的状态将会变为被占用。
当收到一个退房请求时,附带有两个参数x和d。表示编号为x, x+1, x+2, …, x+d-1的房间中若有被占用的房间,则该房间申请退房,处理完退房请求后,所有上述房间的状态变为空房。
现在提供n的大小,并顺序给出一系列入住和退房请求,希望你能够模拟这样一个过程。

输入文件
输入文件第一行中有两个整数n和m,分别表示旅馆中房间的数目以及你需要处理的请求数目。
以下n行,按照时间顺序,每行描述一个请求。格式为“1 d”(不含双引号,两个数字间有一个空格)或者“2 x d”(不含双引号,每两个数字间有一个空格),分别描述一个入住请求和一个退房请求。字母的意义见题意描述部分。
输出文件
对于输入文件中每一个入住请求,你需要向输出文件中输出一行,包含一个数字x。即你提供的连续的空房中编号最小者。如果你拒绝了该请求,则x = 0。
输入样例
10 6
1 3
1 3
1 3
1 3
2 5 5
1 6
输入样例
1
4
7
0
5
规模
30%的数据中,1 <= n <= 1 000, 1 <= m <= 2 000
100%的数据中,1 <= n <= 50 000, 1 <= m <= 100 000
100%的入住请求中,1 <= d <= n
100%的退房请求中,1 <= x <= x + d – 1 <= n

请各位懂编程的朋友帮帮忙!!!

问题解答:

计算机编程 旅馆的题目这个旅游问答期待您的解答,请登录账号或关注微信公众号回答这个问题。

热点新闻