CF1256C Platforms Jumping
题目描述
有一条宽度为$n$的河。河的左岸编号为$0$,右岸编号为$n + 1$。河流上还有$m$个木制平台,第$i$个平台的长度为$ci$(所以说第i个平台占据河流的$ci$个连续位置)。保证平台长度的总和不超过n。
你正站在$0$(左岸),并且想到达右岸即$n + 1$的位置。如果您站在位置x,则可以跳到$[x + 1; x + d]$范围内的任何位置。但是, 你只能跳到木质平台上( _即不能下水_ )。例如,如果$d = 1$,则只能跳到下一个位置(如果这个位置上有木制平台)。您可以假设单元格$0$和$n + 1$属于木制平台。
您可以将任意平台向左或向右移动任意次数(也可以不移动),只要它们彼此不重叠(但两个平台可以挨在一起)。也就是说你不能更改平台的相对顺序。
**请注意,你应该先移动平台再跳跃(一旦你出发后,你就不能再移动平台了)。**
例如,如果$n = 7$,$m = 3$,$d = 2$和$c = [1,2,1]$,这就是从左岸跳到右岸的方法之一:

输入格式
输入的第一行包含三个整数$n$,$m$和$d$($1≤n$,$m,d≤1000$,$m≤n$)
输入的第二行包含m个整数$c1,c2,…,cm$($1≤ci≤n$,$\sum_{i=1}^mci$ ≤ $n$ _【这里打的和原题面格式不太一样,就是说木平台的长度和不大于河宽】_ ),其中ci是第i个平台的长度。
输出格式
如果不可能从0达到n + 1,则在第一行中输出"NO"。否则,在第一行中打印“YES”,在第二行中输出长度为n的数组 输出河流的序列(不输出单元格0和单元格n + 1)。
如果河流单元格i不属于任何平台,输出0。否则,它应该是等于平台的编号(平台编号是从1到m输入的顺序)。
说明/提示
Consider the first example: the answer is $ [0, 1, 0, 2, 2, 0, 3] $ . The sequence of jumps you perform is $ 0 \rightarrow 2 \rightarrow 4 \rightarrow 5 \rightarrow 7 \rightarrow 8 $ .
Consider the second example: it does not matter how to place the platform because you always can jump from $ 0 $ to $ 11 $ .
Consider the third example: the answer is $ [0, 0, 0, 0, 1, 1, 0, 0, 0, 0] $ . The sequence of jumps you perform is $ 0 \rightarrow 5 \rightarrow 6 \rightarrow 11 $ .