10869. Числа-підрядки


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

За один крок до числа \(X\) дозволяється додати або з \(X\) дозволяється відняти будь-яке додатне число \(Y\), десятковий запис якого є підрядком десяткового запису числа \(X\). Вартість такої операції дорівнює сумі цифр числа \(Y\).

Необхідно за мінімальну вартість отримати з числа \(a\) число \(b\), при цьому всі проміжні числа повинні бути додатними і не повинні перевищувати \(n\).

Формат вхідних даних

Вхідний потік містить три цілих числа: \(n, a, b\) (\(1 ≤ a, b ≤ n ≤ 5000\)).

Формат вихідних даних

Якщо з числа \(a\) не можна отримати число \(b\), виведіть одне число -1. Якщо така послідовність перетворень існує, у першому рядку виведіть мінімальну вартість необхідного перетворення.

У другому рядку виведіть число \(k\) — кількість кроків перетворення.

У наступних \(k\) рядках виведіть самі кроки перетворення по одному у рядку. Кожен рядок повинен мати вигляд +число або -число, залежно від того, додається або віднімається чергове число.

Приклад вхідних даних

20 12 18

Приклад вихідних даних

5
3
-2
+10
-2

Приклад вхідних даних

100 5 43

Приклад вихідних даних

29
8
+5
+1
+1
+1
+13
+26
-5
-4

Приклад вхідних даних

50 5 43

Приклад вихідних даних

-1

Коментарі

Ще немає коментарів.