P19196 [HackerRank] Drive
提高
题目描述

HackerRank is starting a bus service in MountainView, California. The bus starts at time T = 0 at $station_{1}$and goes through $station_{2}$, $station_{3}$, $station_{4}$ in that order and reaches the headquarters located at $station_{n}$. At every station, the bus waits for various commuters to arrive before it departs to the next station. Ignoring the acceleration, the bus moves at 1 meter / second. i.e., if $station_{i}$ and $station_{j}$ are 1000 meters apart, the bus takes 1000 seconds to travel from $station_{i}$ to $station_{j}$.

The bus is equipped with K units of Nitro ($N_{2}$O). If going from $station_{i}$ to $station_{j}$ takes x seconds, then using t units of nitro can decrease the time taken to max(x-t, 0) seconds where max(a,b) denotes the greater of the two values between a & b. The Nitro can be used all at once or in multiples of 1 unit.

If the bus driver travels optimally, what is the minimum sum of travelling time for all commuters? The travelling time equals to the time he/she arrived at the destination minus the time he/she arrived the start station.

Please remember that the driver must take all passengers to their destination.

Input Format

The first line contains 3 space separated integers n, m and K which indicate the number of stations, total number of people who board the bus at various stations and the total units of Nitro ($N_{2}$O) present in the bus.

The second line contains n-1 space separated integers where the$ i^{th}$ integer indicates the distance between $station_{(i-1)}$ to $station_{i}$.

m lines follow each containing 3 space separated integers. The $ i^{th}$ line contains $t_{i}$, $s_{i}$ and $e_{i}$ in that order indicating the arrival time of the commuter at $s_{i}$ at time $t_{i}$ with his destination being $e_{i}$.

n m K
d1 d2 ... dn-1 // di: the distance between station_i to station_(i+1).
t1 s1 e1 // commuter 1 arrives at his boarding point at s1 and his destination is e1
t2 s2 e2
...
tm sm em

Constraints

0 < n <= 100000

0 < m <= 100000

0 <= K <= 10000000

0 < $d_{i}$ <= 100

0 <= $t_{i}$ <= 10000000

1 <= $s_{i}$ < $e_{i}$ <= n

Output Format

The minimal total travel time.

Sample Input
3 3 2
1 4
1 1 3
2 1 2
5 2 3

Sample Output
9

Explanation

The bus waits for the $1^{st}$ and the $2^{nd}$ commuter to arrive at $station_{1}$ and travels to $station_{2}$ carrying 2 passengers. The travel time from $station_{1}$ to $station_{2}$ is 1 second. It then waits for the $3^{rd}$ commuter to board the bus at time = 5, $2^{nd}$ commuter deboards the bus. The $3^{rd}$ commuter boards the bus at t = 5. The bus now uses 2 units of nitro, this reduces the commute time to travel to $station_{3}$ from 4 to 2.

Hence, the total time spent by each of the passengers on the bus is

1 (time spent waiting for commuter 2) + 1 (travel time from $station_{1}$ to $station_{2}$) + 2 (time spent waiting for commuter 3) + 2 (travel time from $station_{2}$ to $station_{3}$) = 6
1 (travel time from $station_{1}$ to $station_{2}$)

2 (travel time from $station_{2}$ to $station_{3}$)

6+1+2 = 9

hence the answer.

Timelimits

Timelimits for this challenge can be seen here

输入格式

见题面

输出格式

见题面

样例输入
3 3 2 1 4 1 1 3 2 1 2 5 2 3
样例输出
9