Mirko's pizza place is the best one in town. It is so good that all town residents eat pizza for lunch every day. Mirko's delivery service is so fast that the delivery time is negligible. The problem is baking the pizzas, since all residents have their own favourite topping combination, so baking pizzas for two different residents doesn't always take the same amount of time. Mirko only has one small baking oven with a capacity of a single pizza at a time, so good scheduling is extremely important and must be determined before the day starts.
For each of the town residents (denoted by numbers from
to
), we know the baking duration for
their favourite pizza
, as well as the moment in the day when they plan on having lunch
. If a
resident receives their pizza
moments before the planned lunch time, Mirko is rewarded with a tip of
kunas1. On the other hand, if the pizza is delivered
moments late (after the planned lunch time),
Mirko must pay the resident
kunas (because of his timely delivery insurance policy). If the pizza is
delivered precisely on time, Mirko won't get a tip, but he doesn't have to pay anything either.
Mirko would like to know the maximum total tip (including all insurance payouts as negative tips) that can be earned in a day if pizzas are baked in an optimal order. Notice that Mirko can earn a negative total tip (if he has to pay out more insurance than the amount of tips he receives).
Since residents sometimes change their favourite pizza toppings, as well as their preferred lunch time, Mirko's schedule must be adapted in order to keep earning optimal tip amounts. Write a program to compute the maximum total tip for the beginning requirements, as well as after each change.
Note: In this town, the day starts at the moment and lasts much longer than the time needed to
bake pizzas for all residents. The schedule, including the adaptations, must be determined before the
day starts.
1 Kuna - Croatian currency. 1 kuna = 100 lipa(s); 1 € = about 7.5 kuna(s). Come to Croatia! :)
Input Specification
The first line of input contains two positive integers and
, the number of residents and the number
of pizza requirement changes, respectively.
Each of the next lines contains two positive integers:
, the moment when resident
plans on
having lunch, and
, the time needed to bake the pizza for resident
.
Each of the next lines contains three positive integers:
(the index of a resident),
(the new
moment when resident
plans on having lunch), and
(the time needed to bake resident
's new
favourite pizza).
Constraints
Output Specification
The first line of output must contain the maximum total tip for the beginning requirements of the residents.
For each of the changes, the output must contain an additional line of output containing the new
maximum total tip value after the change.
Scoring
In test cases worth of points, the following constraint holds:
.
Sample Input 1
3 2
10 2
6 5
4 3
1 6 1
3 0 10
Sample Output 1
3
2
-11
Explanation for Sample Output 1
The optimal pizza baking schedule is . That way, the first pizza will
be finished at the moment
, the third one at
, and the second one at
. The first pizza
will be delivered
moments early (
kunas tip), the second one will be
moment late (
kuna), and the
third one will be
moments late (
kunas), so the total tip is
kunas. When the first resident changes
requirements, the optimal schedule remains unchanged, while the tips change to
,
, and
,
respectively. After the second requirement change, the optimal schedule is
, while the tips are
,
, and
, respectively.
Sample Input 2
4 2
3 2
0 3
4 3
4 1
3 0 4
1 4 5
Sample Output 2
-8
-13
-18
Sample Input 3
6 7
17 5
26 4
5 5
12 4
8 1
18 2
3 31 3
4 11 5
4 19 3
5 23 2
6 15 1
5 19 1
3 10 4
Sample Output 3
27
59
56
69
78
81
82
58
Comments