Задача о рюкзаке




Task
Time limit: 1000 ms,
Memory limit: 256 Mb

Покупатель хочет приобрести товар стоимостью S рублей. У него есть N банкнот номиналом P1, P2, ..., PN рублей. У продавца есть M банкнот номиналом Q1, Q2, ..., QM. рублей. Определите, смогут ли они рассчитаться.
 
Входные данные
Программа получает на вход сумму S. Далее идет число N затем P1, P2, ..., PN. Далее идет число M, затем Q1, Q2, ..., QM. Количество банкнот у продавца и покупателя и их номиналы не превосходят 100.
 
Выходные данные
Если продавец сможет рассчитаться с покупателем, выведите номиналы банкнот, которые покупатель отдает продавцу и которые он получает в качестве сдачи. Выводите число со знаком “+”, если банкноту соответствующего номинаkа покупатель отдает продавцу и со знаком “-”, если покупатель получает эту банкноту на сдачу. Номиналы банкнот разделяйте пробелом.
 
Если они не могут рассчитаться, выведите строку Impossible.

Ввод Вывод
10
3
3 9 14
2
6 2
-2 +9 +3
100
3
74 35 8
2
19 6
Impossible


https://informatics.msk.ru/mod/statements/view3.php?id=37854&chapterid=3097#1

Auto CHOOSE THE PROGRAMMING NECESSARY LANGUAGE!
Attach the program source file:
or enter the source code in the language:

Rules for designing programs and a list of errors during automatic task verification
           

Results: