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

Задача . B. Mainak и интересная последовательность


У Mainak есть два положительных целых числа \(n\) и \(m\).

Mainak считает, что последовательность \(a_1, a_2, \ldots, a_n\) из \(n\) положительных целых чисел интересная, если для всех целых \(i\) (\(1 \le i \le n\)), побитовое исключающее ИЛИ всех элементов в \(a\), которые строго меньше \(a_i\), равно \(0\). Формально, \(p_i\) равно побитовому исключающему ИЛИ всех элементов в \(a\), которые строго меньше \(a_i\), тогда \(a\) является интересной последовательностью, если \(p_1 = p_2 = \ldots = p_n = 0\).

Например, последовательность \([1,3,2,3,1,2,3]\), \([4,4,4,4]\), \([25]\) являются интересными, тогда как \([1,2,3,4]\) (\(p_2 = 1 \ne 0\)), \([4,1,1,2,4]\) (\(p_1 = 1 \oplus 1 \oplus 2 = 2 \ne 0\)), \([29,30,30]\) (\(p_2 = 29 \ne 0\)) не являются интересными.

Здесь \(a \oplus b\) обозначает побитовое исключающее ИЛИ чисел \(a\) и \(b\).

Найдите любую интересную последовательность \(a_1, a_2, \ldots, a_n\) такую, что сумма элементов в последовательности \(a\) равна \(m\), т.е. \(a_1 + a_2 \ldots + a_n = m\), или же сообщите, что не существует такой последовательности

Заметьте, что побитовое исключающее ИЛИ пустой последовательности считается равным \(0\).

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

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

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

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

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

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

Если ответ «Yes», выведите \(n\) положительных целых чисел \(a_1, a_2, \ldots, a_n\) (\(a_i \ge 1\)), образующих интересную последовательность такую, что \(a_1 + a_2 \ldots + a_n = m\). Если существует несколько решений, выведите любое.

Примечание
  • В первом наборе входных данных \([3]\) является единственной интересной последовательностью длины \(1\), имеющей сумму \(3\).
  • В третьем наборе входных данных не существует последовательности длины \(2\), имеющей сумму элементов \(1\), поэтому такой интересной последовательности тоже не существует.
  • В четвёртом наборе входных данных \(p_1 = p_2 = p_3 = 0\), потому что побитовое исключающее ИЛИ пустой последовательности равно \(0\).

Примеры
Входные данныеВыходные данные
1 4
1 3
6 12
2 1
3 6
Yes
3
Yes
1 3 2 2 3 1
No
Yes
2 2 2

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

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