Question: Python heapq problem: Suppose you're working for tech support, and there are a bunchof tickets (requests for help) that need to be processed. Eachticket is

Python heapq problem:

Suppose you're working for tech support, and there are a bunchof tickets (requests for help) that need to be processed. Eachticket is represented as a tuple consisting of a positive integerfor the urgency (lower numbers are more urgent) and the user's idas a string. Assume there are exactly n tickets at the beginning,and the possible urgency levels are 1 through n. Tickets areprocessed one-at-a-time, in order of urgency. However, once aticket is resolved, it invariably generates another problem withthe user's machine requiring help (a chain reaction), albeit lessurgent. Specifically, if the urgency is u, then immediately afterbeing processed, another ticket gets generated with urgency 2u bythe same user, unless 2u > n (in which case no further ticket isgenerated at this time)

4a. [25 points Use Python's standard library heapq to write afunction process_tickets(t) that takes the initial list of ticketst and returns the list of user ids in the order they'll have thetickets processed. For example, process_tickets ([(1, 'Alice'), (4,'Bob'), (2, 'Carol'), (3, 'Alice')]) should return ['Alice','Alice', 'Carol', 'Alice 'Alice', 'Bob, 'Carol'] since Alice'surgency-1 ticket spawns an urgency-2 ticket, and Alice's andCarol's urgency- 2 tickets each spawn urgency-4 tickets (butAlice's urgency-3 ticket spawns nothing since 2 * 3 > n=4). Keepin mind that you can put tuples in a heap, and they will get sortedby the 0-th component (with ties broken by the 1-st component-alittle unfair to users at the end of the alphabet!)

4b. 5 points What is the running time?

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!