Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js
 

print962. Цепные дроби

printЦепные дроби

Ограничения: время – 1s/2s, память – 16MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Простая цепная дробь имеет вид
5325.gif
где 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

75 34

Пример вывода 1

..........1......
2.+.-------------
............1....
....4.+.---------
..............1..
........1.+.-----
................1
............5.+.-
................1

Пример ввода 2

65 60

Пример вывода 2

......1...
1.+.------
.........1
....11.+.-
.........1
Источник: Весенний турнир имени Мартовского Зайца, 2007
loading