题目链接:​​点击打开链接​


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



mtr (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时,时间为负,不计积累量

#include<cstdio>
#include<cstring>
int ghost[3333]; // 刚开始开的容量为 333 一直 WA
int mark[3333]; // 记录某一时间点的亮着的蜡烛数量
int main()
{
int m,t,r;
while(~scanf("%d %d %d",&m,&t,&r))
{
for(int i=0;i<m;i++)
scanf("%d",&ghost[i]);
if(t<r)
{
printf("-1\n");
continue;
}
memset(mark,0,sizeof(mark));
int ans=0;
for(int i=0;i<m;i++)
{
for(int j=ghost[i]-1;mark[ghost[i]]<r;j--)
{
for(int k=j+1;k<=j+t;k++)
{
if(k>=0) // j可能会为 0
{
mark[k]++;
}
}
ans++;
}
}
printf("%d\n",ans);
}
return 0;
}