你经营一家小剧院,每个月都有顾客邮寄预售票的要求。您需要处理这些票务请求,并告诉他们他们的聚会将在哪里或向顾客解释为什么您无法完成订单。
填写订单时,您需要遵循一些规则:
您的程序必须解析影院布局和故障单请求列表,并按照与请求相同的顺序生成故障单或说明列表。
剧院布局由1行或更多行组成。每行由一个或多个由空格分隔的部分组成。
在剧院布局之后,有一个空行,然后是一个或多个剧院请求。剧院请求由名称后跟空格和请求的票数组成。
示例输入:
6 6
3 5 5 3
4 6 6 4
2 8 8 2
6 6
Smith 2
Jones 5
Davis 6
Wilson 100
Johnson 3
Williams 4
Brown 8
Miller 12
您的程序必须按照与请求相同的顺序生成标准输出结果,其中包括请求故障单的人员的名称以及故障单的行和部分或说明“抱歉,我们无法处理您的派对“或”召集派对。“
示例输出:
```
Smith Row 1 Section 1
Jones Row 2 Section 2
Davis Row 1 Section 2
Wilson Sorry, we can't handle your party.
Johnson Row 2 Section 1
Williams Row 1 Section 1
Brown Row 4 Section 2
Miller Call to split party.
答案 0 :(得分:1)
你应该记下你到目前为止所尝试的内容。无论如何,我认为可以使用以下算法解决。你可以编写相同的代码。
1. Keep track of total_seats.
2. Sort the theater requests based on the number of seats needed (since filling more orders is the priority).
3. For each request :
if request < total_seats :
For each row:
if request < seats_in_row:
total_seats -= seats
update theater_seat[row][column]
else:
Call to split party.
else:
Sorry, we can't handle your party.