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

Задача . D. Кевин и числа


Кевин написал на доске \(n\) целых чисел — набор \(a\).

Кевин может выполнить следующую операцию любое число раз:

  • Выбрать на доске два целых числа \(x, y\), таких что \(|x - y| \leq 1\), стереть их, а затем написать на доске вместо них целое число \(x + y\).

Кевин хочет узнать, возможно ли преобразовать эти целые числа в набор \(b\) размера \(m\) с помощью некоторой последовательности операций.

Два набора \(a\) и \(b\) считаются одинаковыми тогда и только тогда, когда их мультимножества совпадают. Другими словами, для любого числа \(x\) количество его вхождений в \(a\) должно равняться количеству его вхождений в \(b\).

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

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

Первая строка каждого набора входных данных содержит два целых числа \(n\) и \(m\) (\(1\leq m \leq n \leq 2\cdot 10^5\)) — длина \(a\) и длина \(b\).

Вторая строка содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(1\leq a_i \leq 10^9\)).

Третья строка содержит \(m\) целых чисел \(b_1, b_2, \ldots, b_m\) (\(1\leq b_i \leq 10^9\)).

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

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

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

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

Примечание

В первом наборе входных данных вы можете стереть \(4, 5\) и записать \(9\).

Во втором наборе входных данных вы не можете стереть \(3, 6\).

В третьем наборе входных данных возможна такая последовательность операций:

  • Стереть \(2, 2\) и записать \(4\). Теперь на доске записаны \(1, 2, 4\).
  • Стереть \(1, 2\) и записать \(3\). Теперь на доске записаны \(3, 4\).

В четвертом наборе входных данных возможна такая последовательность операций:

  • Стереть \(1, 1\) и записать \(2\). Теперь на доске записаны \(2, 3, 3\).
  • Стереть \(2, 3\) и записать \(5\). Теперь на доске записаны \(3, 5\).

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

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

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