Problem D. 铁憨憨骑士团的喝水规划

时间限制 1000 ms   内存限制 256 MB

在遥远的憨憨王国,有一个铁憨憨骑士团。这天早上,骑士团团员憨伯格正在小卖部,准备买这一天要喝的水。每瓶水的容量是$m$毫升,憨伯格的肚子很大,他有一个没有上限的满足值,当满足值小于等于0的时候他就会口渴。他每喝下一毫升水就会增加一点满足值。这一天一共有$T$个时刻,第一个时刻之前他的满足值是$n$,第$i$个时刻他会消耗$a_i$点的满足值。憨伯格只会在某一时刻刚开始的时候喝水。他不喜欢带着一瓶不满的水,因此他每次喝一瓶水都会把这瓶水喝完。同时,他也不喜欢连续喝两瓶水,因此在某一时刻他最多喝一瓶水。现在憨伯格根据天气预报和训练计划整理出了他今天每个时刻的消耗值,他想知道,他最少需要买多少瓶水,或者他今天一定会口渴?

输入数据

第一行三个整数$T,n,m(1\le T\le 10^5, 1\le n,m\le 10^9)$,表示一天的时刻数、憨伯格满足值的初始值、每瓶水的容量。
接下来一行$T$个整数,第$i$个整数$a_i(0\le a_i\le 10^9)$表示第$i$个时刻消耗的满足值。

输出数据

一行一个整数$Ans$,表示憨伯格最少需要买多少瓶水。如果他今天一定会口渴,那么输出$-1$。

样例输入

复制
3 2 2
1 2 1 · · \n
 · · \n

样例输出

复制
2 \n

样例说明

憨伯格可以在第二个时刻和第三个时刻各喝一瓶水。

北京交通大学第十三届新生程序设计竞赛暨蓝桥杯选拔赛热身赛

Finished


© 2025 FAQs Contact About