如何在剧院中找到二维阵列的最佳座位安排
How to find the best seating arrangement in a theater for 2d array
你 运行 一个小剧院,每个月,你都会有顾客邮寄预售票。您需要处理这些票务请求,或者告诉他们他们的派对将坐在哪里,或者向顾客解释为什么您无法完成他们的订单。
您在填写订单时需要遵守一些规则:
- 填写尽可能多的订单
- 让派对尽可能靠近前面。
- 如果剧院没有足够的座位来举办派对,请告诉他们"Sorry, we can't handle your party."
- 每一方都必须坐在一个区域的单排中。如果他们不适合,请告诉他们 "Call to split party".
您的程序必须解析剧院布局和门票请求列表,并按照与请求相同的顺序生成门票列表或说明。
剧院布局由 1 行或多行组成。每行由 1 个或多个部分组成,由 space.
分隔
剧场布局后空一行,后面有1个或多个剧场请求。剧院请求由姓名后跟 space 和请求的票数组成。
示例输入:
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
您的程序必须以与请求相同的顺序向标准输出生成结果,其中包括请求票证的人的姓名以及票证的行和部分或解释 "Sorry, we can't handle your party" 或 "Call to split party."
示例输出:
```
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.
你也许应该写下你到目前为止尝试过的东西。无论如何,我认为可以使用以下算法解决。您可以编写相同的代码。
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.
你 运行 一个小剧院,每个月,你都会有顾客邮寄预售票。您需要处理这些票务请求,或者告诉他们他们的派对将坐在哪里,或者向顾客解释为什么您无法完成他们的订单。
您在填写订单时需要遵守一些规则:
- 填写尽可能多的订单
- 让派对尽可能靠近前面。
- 如果剧院没有足够的座位来举办派对,请告诉他们"Sorry, we can't handle your party."
- 每一方都必须坐在一个区域的单排中。如果他们不适合,请告诉他们 "Call to split party".
您的程序必须解析剧院布局和门票请求列表,并按照与请求相同的顺序生成门票列表或说明。
剧院布局由 1 行或多行组成。每行由 1 个或多个部分组成,由 space.
分隔剧场布局后空一行,后面有1个或多个剧场请求。剧院请求由姓名后跟 space 和请求的票数组成。
示例输入:
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
您的程序必须以与请求相同的顺序向标准输出生成结果,其中包括请求票证的人的姓名以及票证的行和部分或解释 "Sorry, we can't handle your party" 或 "Call to split party."
示例输出:
```
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.
你也许应该写下你到目前为止尝试过的东西。无论如何,我认为可以使用以下算法解决。您可以编写相同的代码。
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.