Processing math: 100%

Республиканская олимпиада по информатике. 2018 год


Задача D. Разница

Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт

У вас есть мультимножества S. Разница мультимножества и множества состоит в том, что в мультимножестве одно и то же число может содержаться несколько раз, а в множестве — только один раз. Изначально, в мультимножестве содержатся все целые числа от 1 до n по одному разу. За одну операцию вы можете убрать два числа a и b из мультимножества и добавить их абсолютную разницу |a - b|. Вы хотите выполнить некоторые операции так, чтобы в мультимножестве было только одно число x.
Формат входного файла
В первой строке входных данных задается одно целое число T (1T100) — количество тестов. В следующих T строках задаются по два целых числа n и x (2n105,0xn) — описание теста. Сумма всех n по всем тестам не превышает 5105.
Формат выходного файла
Для каждого теста выведите "NO" (без кавычек), если невозможно получить x. Иначе, для этого теста выведите "YES" (без кавычек) и в следующих n-1 строках выведите операции в порядке их выполнения. Для каждой операции выведите два целых числа a и b числа, которые выбираются с текущего мультимножества.
Система оценки
Данная задача содержит четыре подзадачи, в каждой подзадаче выполняются ограничения из условий:
  1. 2n4. Оценивается в 12 баллов.
  2. n-нечетное и x=(n+1)/2. Оценивается в 15 баллов.
  3. 0x1. Оценивается в 23 баллов.
  4. 2n105. Оценивается в 50 баллов.
Пример:
Вход
2
5 1
5 0
Ответ
YES
2 3
4 5
1 1
1 0
NO
( Yerzhan Utkelbayev )
посмотреть в олимпиаде

Комментарий/решение: