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

Задача . A. Общая подпоследовательность


Задача

Темы: Перебор *800

У вас есть два массива целых чисел \(a_1,\ldots,a_n\) и \(b_1,\ldots,b_m\).

Ваша задача найти любой непустой массив \(c_1,\ldots,c_k\), который является подпоследовательностью \(a_1,\ldots,a_n\) и подпоследовательностью \(b_1,\ldots,b_m\). Если есть несколько возможных ответов, найдите массив минимальной возможной длины. Если по-прежнему есть несколько массивов минимальной длины, вы можете найти любой такой массив. Если ни одного такого массива не существует вы должны сообщить об этом.

Последовательность \(a\) является подпоследовательностью последовательности \(b\), если \(a\) может быть получена из \(b\) удалением нескольких (возможно нуля) элементов. Например, \([3,1]\) это подпоследовательность \([3,2,1]\) и \([4,3,1]\), но не подпоследовательность \([1,3,3,7]\) и \([3,10,4]\).

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

В первой строке находится единственное целое число \(t\) (\(1\le t\le 1000\))  — количество наборов входных данных. Следующие \(3t\) строк содержат описания наборов входных данных.

В первой строке каждого набора входных данных содержится два целых числа \(n\) и \(m\) (\(1\le n,m\le 1000\))  — длины массивов.

Во второй строке каждого набора входных данных находится \(n\) целых чисел \(a_1,\ldots,a_n\) (\(1\le a_i\le 1000\))  — элементы первого массива.

В третьей строке каждого набора входных данных находится \(m\) целых чисел \(b_1,\ldots,b_m\) (\(1\le b_i\le 1000\))  — элементы второго массива.

Гарантируется, что сумма всех \(n\) и сумма всех \(m\) по всем наборам входных данных не превосходит \(1000\) (\(\sum\limits_{i=1}^t n_i, \sum\limits_{i=1}^t m_i\le 1000\)).

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

Для каждого набора входных данных выведите «YES», если решение существует и «NO», иначе.

Если ответ «YES», на следующей строке выведите целое число \(k\) (\(1\le k\le 1000\))  — длину массива и затем \(k\) целых чисел \(c_1,\ldots,c_k\) (\(1\le c_i\le 1000\))  — элементы массива.

Если существует несколько возможных решений с минимальным \(k\), выведите любое.

Примечание

В первом наборе входных данных \([4]\) является подпоследовательностью \([10, 8, 6, 4]\) и \([1, 2, 3, 4, 5]\). Этот массив имеет длину \(1\), это наименьшая возможная длина подпоследовательности массивов \(a\) и \(b\).

В третьем наборе входных данных не существует ни одной непустой подпоследовательности у \([3]\) и \([2]\), поэтому ответ «NO».


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

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

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