`Всеукраїнський центр проведення олімпіад в мережі Інтернет

Задача Remake. Рассмотрим 7-значные целые числа в десятичной системе счисления, разрешая нули в старших разрядах. То есть, числа от 0000000 до 9999999. Над числом разрешено выполнять такие преобразования:

– прибавить 1 (не применимо к 9999999);

– вычесть 1 (не применимо к 0000000);

– умножить на любое натуральное число k от 2 до 9(применимо только, если полученное произведение не превышает 9999999);

– разделить на любое натуральное число k от 2 до 9(применимо только, если число до преобразования кратноk);

– выполнить циклический сдвиг влево, то есть стереть цифру самого старшего разряда и дописать ее справа (например, 1234567 → 2345671; применимо к любому числу);

– выполнить циклический сдвиг вправо, т.е. стереть цифру самого младшего разряда и дописать ее слева (например, 1234567 → 7123456; применимо к любому числу).

Напишите программу, которая по двум указанным 7-значным числам A и B находит, как превратить первое во второе за минимальное количество шагов.

 

Технические условия. Программа Remake считывает с клавиатуры (устройства стандартного ввода) начальное и конечное значение A и B. Каждое значение состоит ровно из7-ми десятичных цифр, между значениями находится ровно один пробел.
Программа выводит на экран (устройство стандартного вывода) сначала минимальное количество преобразованийM, далее следует вывести M+1 штук 7-значных чисел, где первое равно A, последнее равно B, и каждое следующее получено из предыдущего одним из преобразований. Числа, меньшие 106, должны быть дополнены нулями до 7-значных. Если возможны различные правильные последовательности с одинаковым минимальным количеством преобразований – выводите любую одну из них. Числа выводятся через пробел.

 

Примеры

Ввод

3330333 3333033

Вывод

1 3330333 3333033

Ввод

0000000 0370370

Вывод

6 0000000 0000001 1000000 0999999 0111111 0037037 0370370

 

© LIKT 1998-2024