#B7. 种花问题

种花问题

题目描述

小明是一名社区花园的志愿者,负责维护一条长条形的花坛。花坛被划分为 NN 个连续的地块,每个地块要么已经种了花(用 1 表示),要么是空的(用 0 表示)。

根据社区规定,花朵不能种植在相邻的地块上,否则它们会争夺养分导致枯萎。也就是说,任意两个种花的地块之间必须至少有一个空地块隔开。

现在,小明手中有 KK 株新的花苗,他想知道在不违反规定的情况下,能否将这 KK 株花苗全部种入花坛中?

注意:

  1. 原有的花位置不可改变。
  2. 新种的花也不能与原有的花或新种的其他花相邻。
  3. 花坛的两端视为边界,只要不与内部相邻地块冲突即可种植(例如,如果第一个地块是空的且第二个地块也是空的,则第一个地块可以种花)。

输入格式

第一行包含两个整数 N,KN, K,分别表示花坛的地块总数和需要种植的花苗数量。 第二行包含 NN 个整数(0 或 1),表示花坛当前的状态。

数据范围:

  • 1≤N≤200001 \le N \le 20000
  • 0≤K≤N0 \le K \le N
  • 输入数组只包含 0 和 1,且初始状态下不存在相邻的 1。

输出格式

输出一个字符串。如果可以种下所有 KK 株花,输出 "YES";否则输出 "NO"。

5 1
1 0 0 0 1
YES