Умножение в начальной школе
Компания по разработке образовательного программного обеспечения, All Computer Math (ACM), имеет раздел, посвященный умножению целых чисел. Они хотят отображать вычисления в традиционном школьном формате, как в следующем примере для 432 × 5678:
"' 432 × 5678 ——- 3456 3024 2592 2160 ——- 2452896 "'
Обратите внимание, что итоговый результат выводится без начальных пробелов, но начальные пробелы необходимы на некоторых других строках для поддержания правильного выравнивания. Однако, согласно нашим региональным правилам, никогда не должно быть строк с завершающими пробелами. Строки с тире имеют длину, соответствующую итоговому произведению.
В особом случае, когда одна из цифр второго операнда равна нулю, она генерирует один 0 в частичных ответах, и следующий частичный результат должен быть на той же строке, а не на следующей строке. Например, рассмотрим следующее произведение 200001 × 90040:
"' 200001 × 90040 ———– 8000040 180000900 ———– 18008090040 "'
Самая правая цифра второго операнда равна 0, что приводит к размещению 0 в крайнем правом столбце первого частичного произведения. Однако, вместо того чтобы продолжать на новой строке, частичное произведение 4 × 200001 размещается на той же строке, что и этот 0. Третья и четвертая наименее значимые цифры второго операнда равны нулю, каждая из которых приводит к 0 во втором частичном произведении на той же строке, что и результат 9 × 200001.
В качестве последнего особого случая, если в частичном ответе только одна строка, она составляет полный ответ, и поэтому нет необходимости вычислять сумму. Например, вычисление 246 × 70 будет отформатировано как:
"' 246 × 70 —– 17220 "'
Ваша задача — сгенерировать отображение решений.
Входные данные
Вход содержит один или несколько наборов данных. Каждый набор данных состоит из двух положительных целых чисел на строке, обозначающих операнды в заданном порядке. Ни одно из чисел не будет иметь более 6 цифр, и ни одно не будет иметь начальных нулей. После последнего набора данных идет строка, содержащая только 0 0.
Выходные данные
Для каждого набора данных выведите строку с меткой, содержащей "Problem ", с номером задачи, за которой следует полная задача умножения в соответствии с описанными выше правилами форматирования.
Предупреждение: Стандартный тип int не может правильно обрабатывать 12-значные числа. Вы должны использовать 64-битный тип (например, 'long' в Java или 'long long' в C++).