CF1430F.Realistic Gameplay
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Recently you've discovered a new shooter. They say it has realistic game mechanics.
Your character has a gun with magazine size equal to k and should exterminate n waves of monsters. The i -th wave consists of ai monsters and happens from the li -th moment of time up to the ri -th moments of time. All ai monsters spawn at moment li and you have to exterminate all of them before the moment ri ends (you can kill monsters right at moment ri ). For every two consecutive waves, the second wave starts not earlier than the first wave ends (though the second wave can start at the same moment when the first wave ends) — formally, the condition ri≤li+1 holds. Take a look at the notes for the examples to understand the process better.
You are confident in yours and your character's skills so you can assume that aiming and shooting are instant and you need exactly one bullet to kill one monster. But reloading takes exactly 1 unit of time.
One of the realistic mechanics is a mechanic of reloading: when you reload you throw away the old magazine with all remaining bullets in it. That's why constant reloads may cost you excessive amounts of spent bullets.
You've taken a liking to this mechanic so now you are wondering: what is the minimum possible number of bullets you need to spend (both used and thrown) to exterminate all waves.
Note that you don't throw the remaining bullets away after eradicating all monsters, and you start with a full magazine.
输入格式
The first line contains two integers n and k ( 1≤n≤2000 ; 1≤k≤109 ) — the number of waves and magazine size.
The next n lines contain descriptions of waves. The i -th line contains three integers li , ri and ai ( 1≤li≤ri≤109 ; 1≤ai≤109 ) — the period of time when the i -th wave happens and the number of monsters in it.
It's guaranteed that waves don't overlap (but may touch) and are given in the order they occur, i. e. ri≤li+1 .
输出格式
If there is no way to clear all waves, print −1 . Otherwise, print the minimum possible number of bullets you need to spend (both used and thrown) to clear all waves.
输入输出样例
输入#1
2 3 2 3 6 3 4 3
输出#1
9
输入#2
2 5 3 7 11 10 12 15
输出#2
30
输入#3
5 42 42 42 42 42 43 42 43 44 42 44 45 42 45 45 1
输出#3
-1
输入#4
1 10 100 111 1
输出#4
1
说明/提示
In the first example:
- At the moment 2 , the first wave occurs and 6 monsters spawn. You kill 3 monsters and start reloading.
- At the moment 3 , the second wave occurs and 3 more monsters spawn. You kill remaining 3 monsters from the first wave and start reloading.
- At the moment 4 , you kill remaining 3 monsters from the second wave.
In total, you'll spend 9 bullets.In the second example:
- At moment 3 , the first wave occurs and 11 monsters spawn. You kill 5 monsters and start reloading.
- At moment 4 , you kill 5 more monsters and start reloading.
- At moment 5 , you kill the last monster and start reloading throwing away old magazine with 4 bullets.
- At moment 10 , the second wave occurs and 15 monsters spawn. You kill 5 monsters and start reloading.
- At moment 11 , you kill 5 more monsters and start reloading.
- At moment 12 , you kill last 5 monsters.
In total, you'll spend 30 bullets.