eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Додавання

Додавання

Для заданої суми та списку можливих доданків, які є цілими числами, знайти усі способи отримання заданої суми. Наприклад, якщо задано суму \textbf{4} та список чисел \textbf{4 3 2 2 1 1}, то отримаємо \textbf{Sums of 4: 4 3+1 2+2 2+1+1} \InputFile Вхідний файл може містити довільну кількість тестів. Дані для кожного тесту можуть міститись у одному рядку. Перші два числа вказують суму та кількість чисел у списку. Далі міститься сам список чисел. Усі числа буде відокремлено одним або декількома пропусками. Числа у кожному списку відображаються у порядку спадання, але можуть бути повтори. Усього буде не більше \textbf{12} чисел у кожному списку, і кожне число буде додатним цілим числом меншим \textbf{1000}. Сума є додатним цілим числом меншим \textbf{1000}. \OutputFile Для кожного набору вхідних даних виведіть спочатку рядок з повідомленням "\textbf{Sums of}", і подальшим значенням самої суми. Далі перерахуйте суми по одній у рядку. Якщо немає можливості набрати таку суму, виведіть рядок "\textbf{NONE}". Числа у кожній сумі повинні бути у порядку спадання. Число може бути повторено у сумі стільки разів, скільки воно було повторено у початковому списку. Кожен тест для суми повинен бути відсортований так, як це показано у прикладі вихідних даних. При виведенні списку сум не повинно бути ніяких дублюючих рядків. Кожен рядок повинен бути виведений з нового рядка. Виводьте одиночні пропуски до і після слова "\textbf{ of }".
Ліміт часу 0.1 секунд
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
4 6 4 3 2 2 1 1
5 3 2 1 1
Вихідні дані #1
Sums of 4:
4
3+1
2+2
2+1+1
Sums of 5:
NONE