题目链接:点击打开链接
C. Anya and Ghosts
time limit per test
memory limit per test
input
output
m ghosts tonight. Anya has lots of candles prepared for the visits, each candle can produce light for exactly t seconds. It takes the girl one second to light one candle. More formally, Anya can spend one second to light one candle, then this candle burns for exactly t
m ghosts Anya knows the time at which it comes: the i-th visit will happen wi seconds after midnight, all wi's are distinct. Each visit lasts exactly one second.
r candles are burning? Anya can start to light a candle at any time that is integer number of seconds from midnight, possibly, at the time before midnight. That means, she can start to light a candle integer number of seconds before midnight or integer number of seconds after a midnight, or in other words in any integer moment of time.
Input
m, t, r (1 ≤ m, t, r ≤ 300), representing the number of ghosts to visit Anya, the duration of a candle's burning and the minimum number of candles that should burn during each visit.
m space-separated numbers wi (1 ≤ i ≤ m, 1 ≤ wi), the i-th of them repesents at what second after the midnight the i-th ghost will come. All wi's are distinct, they follow in the strictly increasing order.
Output
r
- 1.
Examples
input
1 8 3 10
output
3
input
2 10 1 5 8
output
1
input
1 1 3 10
output
-1
Note
Anya can start lighting a candle in the same second with ghost visit. But this candle isn't counted as burning at this visit.
It takes exactly one second to light up a candle and only after that second this candle is considered burning; it means that if Anya starts lighting candle at moment x, candle is buring from second x + 1 to second x + t inclusively.
3-rd, 5-th and 7-th seconds after the midnight.
In the second sample test one candle is enough. For example, Anya can start lighting it one second before the midnight.
- 1, since during each second at most one candle can burn but Anya needs three candles to light up the room at the moment when the ghost comes.
题目大意:一个人要遇到m只鬼,遇到每只鬼要的时间为w[i],他的蜡烛能亮t秒,遇到一只鬼要至少有r支蜡烛亮着,他点燃蜡烛要1s,点燃的时间不算燃烧的时间,求他最少要带多少根蜡烛,要不存在解输出-1
题目分析:按区间模拟,首先要判断的是当t小于r时无解,因为点燃也要1s,因此不可能存在一个时刻让r支蜡烛都亮着,我们应尽量保证蜡烛点燃的时刻离鬼来的时刻近,所以我们先找遇到第一个鬼的前1秒点一支蜡烛,假设此时为时刻t0则其后t0 + 1 + t的时间这根蜡烛都亮着,则这段区间标记一下,若此时不足以过第一个鬼则再遇到其前的第2秒再点一根,依次前推,注意当t0 + 1 + i小于0时,时间为负,不计积累量