传统题 1000ms 256MiB

座位预约系统

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

某电影院有一个座位预约系统,共有 10910^9 个座位,编号为 1110910^9。初始时所有座位都是空闲的。

系统支持以下三种操作:

  1. 预约座位book X - 尝试预约座位 XX。如果该座位空闲则预约成功;如果已被预约则失败。
  2. 取消预约cancel X - 取消座位 XX 的预约。如果该座位已被预约则取消成功;如果本来就空闲则操作无效。
  3. 查询可用座位数量available - 查询当前所有可用(空闲)的座位数量。

你需要编写一个程序,处理一系列操作,并按要求输出结果。

输入格式

第一行一个整数 nn (1n105)(1 \le n \le 10^5),表示操作的总数。

接下来 nn 行,每行描述一个操作:

  • 预约座位:book X,其中 1X1091 \le X \le 10^9
  • 取消预约:cancel X,其中 1X1091 \le X \le 10^9
  • 查询可用座位数量:available

输出格式

对于每个操作,按以下要求输出:

  1. 对于 book X 操作:

    • 如果预约成功,输出 Seat X booked.
    • 如果预约失败(座位已被预约),输出 Seat X already taken.
  2. 对于 cancel X 操作:

    • 输出 Seat X canceled.
  3. 对于 available 操作:

    • 输出一行:Available seats: k,其中 kk 是当前可用座位的数量。

每个输出占一行。

输入样例 #1

8
book 5
book 1000000000
book 5
available
cancel 5
book 5
available
book 999999999

输出样例 #1

Seat 5 booked.
Seat 1000000000 booked.
Seat 5 already taken.
Available seats: 999999998
Seat 5 canceled.
Seat 5 booked.
Available seats: 999999998
Seat 999999999 booked.

输入样例 #2

6
available
book 1
book 2
available
cancel 1
available

输出样例 #2

Available seats: 1000000000
Seat 1 booked.
Seat 2 booked.
Available seats: 999999998
Seat 1 canceled.
Available seats: 999999999

数据范围

  • 1n1051 \le n \le 10^5
  • 1X1091 \le X \le 10^9

样例解释

样例 #1:

  1. 初始:可用座位 = 10910^9
  2. book 5:成功,预约座位数 = 1
  3. book 1000000000:成功,预约座位数 = 2
  4. book 5:失败(已预约)
  5. available:可用座位 = 1092=99999999810^9 - 2 = 999999998
  6. cancel 5:取消成功,预约座位数 = 1
  7. book 5:成功,预约座位数 = 2
  8. available:可用座位 = 1092=99999999810^9 - 2 = 999999998
  9. book 999999999:成功,预约座位数 = 3

小迪老师-set、map

未认领
状态
已结束
题目
11
开始时间
2026-1-25 0:00
截止时间
2026-2-8 23:59
可延期
24 小时