Submit | All submissions | Best solutions | Back to list |
RENT - Rent your airplane and make money |
"ABEAS Corp." is a very small company that owns a single airplane. The customers of ABEAS Corp are large airline companies which rent the airplane to accommodate occasional overcapacity.
Customers send renting orders that consist of a time interval and a price that the customer is ready to pay for renting the airplane during the given time period. Orders of all the customers are known in advance. Of course, not all orders can be accommodated and some orders have to be declined. Eugene LAWLER, the Chief Scientific Officer of ABEAS Corp would like to maximize the profit of the company.
You are requested to compute an optimal solution.
Small Example
Consider for instance the case where the company has 4 orders:
- Order 1 (start time 0, duration 5, price 10)
- Order 2 (start time 3, duration 7, price 8)
- Order 3 (start time 5, duration 9, price 7)
- Order 4 (start time 6, duration 9, price 8)
The optimal solution consists in declining Order 2 and 3 and the gain
is 10+8 = 18.
Note that the solution made of Order 1 and 3 is feasible (the airplane
is rented with no interruption from time 0 to time 14) but non-optimal.
Input
The first line of the input contains a number T ≤ 30 that indicates the number of test cases to follow. The first line of each test case contains the number of orders n (n ≤ 10000). In the following n lines the orders are given. Each order is described by 3 integer values: The start time of the order st (0 ≤ st < 1000000), the duration d of the order (0 < d < 1000000), and the price p (0 < p < 100000) the customer is ready to pay for this order.
Output
You are required to compute an optimal solution. For each test case your program has to write the total price paid by the airlines.
Example
Input: 1 4 0 5 10 3 7 14 5 9 7 6 9 8 Output: 18Warning: large Input/Output data, be careful with certain languages
Added by: | Adrian Kuegel |
Date: | 2004-07-13 |
Time limit: | 3s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ERL JS-RHINO NODEJS PERL6 VB.NET |
Resource: | ACM Southwestern European Regional Contest, Paris 2003 |
hide comments
|
||||||||||
2017-05-14 11:27:48
Good problem...150th:) |
||||||||||
2017-03-24 12:36:19
good problem for DP beginners wieghted job scheduling in other form linear search - O(n*n) ran in 0.21 binary search- O(n*log(n)) ran in 0.04 great difference in times....enjoyed a lot |
||||||||||
2017-03-07 13:24:27
AC in 1 go:-) |
||||||||||
2017-03-02 17:16:38
It's not really DP and you don't need binary search; it can be solved with a sort and an O(N) sweep. You could make the whole thing O(N) with radix/numsort, although I was lazy and just used std::sort of course. |
||||||||||
2016-12-28 17:32:06
use printf , scanf ......cin,cout costed 1TLE:( Last edit: 2016-12-28 17:32:21 |
||||||||||
2016-11-16 02:15:36
Binary search reduces O(n^2)->O(nlgn). |
||||||||||
2016-10-21 21:33:45
Classical dp..:) |
||||||||||
2016-10-02 02:52:09 deerishi
Weighted Job Scheduling! Interesting! both nlogn and n^2 solution pass! Just Try and Use a single dimensional dp table! |
||||||||||
2016-08-11 22:21:04
For some reason my Haskell implementation was too slow with linear search, so I had to use binary search. |
||||||||||
2016-07-05 07:10:58
Noob me... I was printing "MaxPrice: 18" and was wondering how the hell is this wrong! Wasted a day on this thing. |