Олимпиадный тренинг

Задача . A. МаксМинА


У вас есть массив \(a\) размера \(n\), состоящий только из нулей и единиц, и целое число \(k\). За одну операцию вы можете выполнить одно из двух следующих действий:

  • Выберите \(2\) последовательных элемента \(a\) и замените их на их минимум (то есть сделайте \(a := [a_{1}, a_{2}, \ldots, a_{i-1}, \min(a_{i}, a_{i+1}), a_{i+2}, \ldots, a_{n}]\) для некоторого \(1 \le i \le n-1\)). Эта операция уменьшает размер \(a\) на \(1\).
  • Выберите \(k\) последовательных элементов \(a\) и замените их на их максимум (то есть сделайте \(a := [a_{1}, a_{2}, \ldots, a_{i-1}, \max(a_{i}, a_{i+1}, \ldots, a_{i+k-1}), a_{i+k}, \ldots, a_{n}]\) для некоторого \(1 \le i \le n-k+1\)). Эта операция уменьшает размер \(a\) на \(k-1\).

Определите, возможно ли превратить \(a\) в \([1]\) после нескольких (возможно, нуля) операций.

Входные данные

Каждый тест содержит несколько наборов входных данных. Первая строка содержит количество наборов входных данных \(t\) (\(1 \le t \le 1000\)). Далее следует их описание.

Первая строка каждого набора входных данных содержит два целых числа \(n\) и \(k\) (\(2 \le k \le n \le 50\)) — размер массива \(a\) и длину отрезка, на котором можно выполнить операцию второго типа.

Вторая строка каждого набора входных данных содержит \(n\) целых чисел \(a_{1}, a_{2}, \ldots, a_{n}\) (\(a_i\) равно \(0\) или \(1\)) — элементы массива \(a\).

Выходные данные

Для каждого набора входных данных, если возможно превратить \(a\) в \([1]\), выведите «YES», иначе выведите «NO».

Примечание

В первом наборе входных данных вы можете выполнить операцию второго типа над вторым и третьим элементами так, что \(a\) будет равно \([0, 1]\), затем вы можете выполнить операцию второго типа над первым и вторым элементами, после чего \(a\) превратится в \([1]\).

Очевидно, что в четвертом наборе входных данных вы не можете получить ни одного значения \(1\), что бы вы ни делали.

В пятом наборе входных данных вы можете сначала выполнить операцию второго типа над первыми тремя элементами, чтобы \(a\) стало равно \([1, 0, 0, 1]\), затем выполнить операцию второго типа над элементами со второй позиции по четвертую так, что \(a\) станет равно \([1, 1]\), и, наконец, выполнить операцию первого типа над оставшимися элементами так, что \(a\) превратится в \([1]\).


Примеры
Входные данныеВыходные данные
1 7
3 2
0 1 0
5 3
1 0 1 1 0
2 2
1 1
4 4
0 0 0 0
6 3
0 0 1 0 0 1
7 5
1 1 1 1 1 1 1
5 3
0 0 1 0 0
YES
YES
YES
NO
YES
YES
YES

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя