|
|
||||
Маленький
мальчик
взял
листок
бумаги в
клетку
размером NxN
клеток и
нарисовал
на нем
замкнутую M-звенную
ломаную с
вершинами
в узлах
клеток.
После
этого он
выписал
квадраты
длин
звеньев
ломаной в
порядке их
обхода по
ломаной, а
затем
выкинул
свой
рисунок.
Необходимо
определить,
существует
ли хотя бы
одна
ломаная,
соответствующая
записанным
мальчиком
данным, или
он ошибся в
подсчете
расстояний.
Если такая
ломаная
существует,
то нужно ее
воспроизвести. Требуется написать программу, которая определяла бы возможность восстановления ломаной по заданной последовательности квадратов длин ее звеньев, и в случае положительного ответа вычисляла координаты всех вершин ломаной. Технические
требования: Входной
файл: INPUT.TXT
Формат выходных данных: в случае наличия решения данной задачи выходной файл OUTPUT.TXT должен состоять из M строк, в i-ой строке которого содержатся координаты вершин ломаной Xi и Yi, где Xi, Yi – целые числа и 0<=Xi<=N, 0<=Yi<=N. Порядок записи координат вершин ломаной в строках должен соответствовать порядку записи квадратов длин звеньев ломаной во входном файле. В
случае
наличия
нескольких
решений
следует
найти хотя
бы одно из
них. Если по
исходным
данным
ломаную
восстановить
невозможно,
то
выходной
файл
должен
содержать
сообщение "NO".
|
||||