Цепные дроби
Ограничения: время – 1s/2s, память – 16MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод 
Послать решение Blockly Посылки Темы Где Обсудить (0)
Простая цепная дробь имеет вид
где ai – целые числа. Такую цепную дробь можно записать в виде [a1, a2, a3, …, an]. Нетрудно показать, что любое рациональное число pq, где p, q – целые числа и p > q > 0 может быть единственным образом представлено цепной дробью [a1, a2, …, an-1,1], где n и ai – натуральные числа.
Напишите программу, которая для заданного рационального числа находит и печатает простую цепную дробь.
Ввод
Входной файл содержит два целых чисел p и q (1018 > p > q > 0).
Вывод
Запишите в выходной файл результат как показано в примере. Цепная дробь должна быть напечатана с соблюдением следующих правил:
- Горизонтальные линии состоят из символов "-" (минус);
- Ширина каждой горизонтальной линии в точности равна ширине знаменателя;
- Пробелы изображаются символами "." (точка);
- Единицы в числителях должны выравниваться по центру горизонтальной линии, то есть, слева и справа от единицы должно быть одинаковое количество пробелов, если это возможно. В противном случае один дополнительный пробел должен быть добавлен справа.
Пример вывода 1
..........1......
2.+.-------------
............1....
....4.+.---------
..............1..
........1.+.-----
................1
............5.+.-
................1
Пример вывода 2
......1...
1.+.------
.........1
....11.+.-
.........1
Источник: Весенний турнир имени Мартовского Зайца, 2007