0

You run a small theater and each month, you have patrons mail in requests for pre-sale tickets. You need to process these ticket requests and either tell them where their party will sit or explain to the patron why you can't complete their order.

You have a few rules that you need to follow when you fill the orders:

  1. Fill as many orders as possible
  2. Put parties as close to the front as possible.
  3. If there are not enough seats available in the theater to handle a party, tell them "Sorry, we can't handle your party."
  4. Each party must sit in a single row in a single section. If they won't fit, tell them "Call to split party".

Your program must parse a theater layout and a list of ticket requests and produce a list of tickets or explanations in the same order as the requests.

The theater layout is made up of 1 or more rows. Each row is made up of 1 or more sections separated by a space.

After the theater layout, there is one empty line, followed by 1 or more theater requests. The theater request is made up of a name followed by a space and the number of requested tickets.

Sample input:

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

Your program must produce results to standard output in the same order as the requests, with the name of the person who requested the ticket and either the row and section of the ticket or the explanations "Sorry, we can't handle your party" or "Call to split party."

Sample output:

```

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.
Jim Mischel
  • 131,090
  • 20
  • 188
  • 351
naqib83
  • 128
  • 3
  • 14
  • 1
    Can you explain the input – zenwraight Jan 22 '18 at 01:30
  • Like what is 6 6 and then 3 5 5 3 in the next line etc... I am not able to get that part exactly. – zenwraight Jan 22 '18 at 01:30
  • Do you want to seat the parties in the order of the reservations (meaning the earlier you made your reservation the more in the front you will sit) or can you seat a party with an early reservation to the back row in order to fit more people? – SaiBot Jan 22 '18 at 09:57
  • 1
    The idea here is that you're supposed to try the exercise. When you run into difficulty, post the relevant code and explain the problem. Stack Overflow isn't a "do my homework for me" service. – Jim Mischel Jan 22 '18 at 18:35

1 Answers1

1

You should maybe write down what you have tried so far. Anyway, I think it can be solved using the following algorithm. You can code the same.

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. 
user2125722
  • 1,289
  • 3
  • 18
  • 29