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

Задача . B. Социальная дистанция


По кругу расставлены последовательно \(m\) стульев. Стулья пронумерованы от \(0\) до \(m-1\). На эти стулья хотят сесть \(n\) человек. \(i\)-й из них хочет, чтобы и справа, и слева от него было хотя бы \(a[i]\) пустых стула.

Более формально, если \(i\)-й человек сидит на \(j\)-м стуле, то никто не может сидеть на следующих стульях: \((j-a[i]) \bmod m\), \((j-a[i]+1) \bmod m\), ... \((j+a[i]-1) \bmod m\), \((j+a[i]) \bmod m\).

Определите, возможно ли рассадить всех людей при заданных ограничениях.

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

Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число \(t\) (\(1 \leq t \leq 5 \cdot 10^4\)) — количество наборов входных данных. Далее следует их описание.

Первая строка каждого набора содержит два целых числа \(n\) и \(m\) (\(2 \leq n \leq 10^5\), \(1 \leq m \leq 10^9\)) — количество людей и стульев соответственно.

Следующая строка содержит \(n\) целых чисел \(a_1\), \(a_2\), ... \(a_n\) (\(1 \leq a_i \leq 10^9\)) — минимальное количество пустых стульев по обеим сторонам \(i\)-го человека.

Гарантируется, что сумма \(n\) по всем наборам входных данных не превышает \(10^5\).

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

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

Вы можете выводить буквы в любом регистре (например, строки «yEs», «yes», «Yes» и «YES» будут все считаться положительным ответом)

Примечание

\(1\)-й набор входных данных: \(n>m\), поэтому никак нельзя рассадить всех.

\(2\)-й набор: первый человек может сесть на \(2\)-й стул, а второй человек — на \(0\)-й стул. Оба хотят по крайней мере \(1\) пустой стул по обе стороны от них. Стулья \(1\) и \(3\) свободны, поэтому эта рассадка подходит.

\(3\)-й набор: если второй человек сядет на стул, ему потребуется по \(2\) пустых стула слева и справа от него, поэтому становится невозможно найти место для первого человека, поскольку стульев всего \(5\).

\(4\)-й набор: люди могут сесть на \(1\)-й, \(4\)-й и \(7\)-й стулья соответственно.


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

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

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