Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Олимпиада

Time limit:1 sec.
Memory limit: 262144 KByte

Как известно, не все олимпиады по программированию проводятся по правилам ACM ICPC. Один из альтернативных вариантов (частный случай правил областной олимпиады школьников этого года) состоит в следующем.

Множество тестов к задаче делится на непересекающиеся непустые подмножества, называемые подзадачами. Все тесты одной и той же подзадачи оцениваются одинаковым целым количеством баллов (но в разных подзадачах баллы за тесты могут отличаться). Итоговый балл за решение вычисляется как сумма баллов по всем пройденным тестам. Полностью верное решение должно получать ровно 100 баллов.

Рассмотрим пример. Пусть у нас есть две подзадачи, первая содержит 6 тестов стоимостью по 5 баллов каждый, вторая 10 тестов по 7 баллов. Если решение прошло 2 теста из первой подзадачи и 3 теста из второй подзадачи, то оно получает 2*5 + 3*7 = 31 балл.

Заметим, что не все целые числа от 0 до 100 могут быть допустимыми результатами участников. Например, 1 балл в данном примере набрать невозможно.

Как-то раз в некотором городе прошла олимпиада по описанным правилам. После окончания олимпиады один из её участников, изучая протокол с результатами, почему-то засомневался а действительно ли могли получиться такие результаты по одной из задач. Участник помнит общее количество тестов, количество подзадач, а также максимальный балл, который можно было набрать по каждой подзадаче. К сожалению, он не помнит, сколько в каждой подзадаче было тестов.

Определите, сколько могло быть тестов в каждой подзадаче, чтобы результаты из протокола олимпиады действительно могли быть получены всеми участниками.

 

Входные данные. Первая строка входных данных содержит три разделенных пробелами целых числа T, S и N, где T  количество тестов, S  количество подзадач, N  количество неповторяющихся результатов участников (1 ≤ T ≤ 100, 1 ≤ S ≤ 10, 1 ≤ N ≤ 100).

Вторая строка содержит S разделённых пробелом положительных целых чисел  максимально возможные баллы за каждую подзадачу. Сумма этих чисел гарантированно равна 100.

Третья строка содержит N разделенных пробелом упорядоченных по возрастанию неповторяющихся целых чисел в диапазоне от 1 до 100  различные ненулевые результаты участников из протокола олимпиады.

 

Выходные данные. В первую строку выходных данных выведите слово "YES" (без кавычек), если решение существует, и "NO", если нет.

В случае ответа "YES" в следующей строке выведите S разделенных пробелом целых чисел  количество тестов в каждой подзадаче. Если возможно несколько верных ответов, выведите любой.

 

Примеры

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

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

16 2 3

30 70

12 19 95

YES

6 10

2 2 1

40 60

50

NO

 

© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.