printЗадачи командного чемпионата

printG. Скульптура

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

На набережной Петрозаводска установлено множество абстрактных скульптур. Одна из скульптур так понравилась Васе Пупкину, что он решил сделать ее копию и установить в своем саду. Скульптура представляет собой `N` стальных прутьев, торчащих из общего центра. Вася измерил углы между 1-м и 2-м прутьями, 2-м и 3-м прутьями, …, `N`-м и 1-м прутьями. Также он измерил расстояния между вершинами этих прутьев. Вернувшись домой, Вася понял, что этих данных для создания точной копии скульптуры недостаточно. Тогда он решил сделать скульптуру, у которой будут такие же углы и расстояния между вершинами прутьев. Подобрать нужную длину прутьев оказалось сложной задачей, и Вася обратился за помощью к вашей команде. Вася не уверен, что все измерения были записаны верно, поэтому программа должна проверять возможность создания скульптуры с заданными параметрами.
Напишите программу, которая вычислит длину прутьев в скульптуре.
В первой строке ввода содержится одно целое число `N` (`3\ ≤\ N\ ≤\ 15`) – количество прутьев. Во второй строке содержится `N` вещественных чисел, разделенных пробелами, в диапазоне от 1 до 100 – углы между прутьями в градусах. В третьей строке содержится `N` вещественных чисел, разделенных пробелами, в диапазоне от 1 до 100 – расстояния между вершинами прутьев.
В первой строке вывести YES, если удалось найти длину прутьев, или NO, если сделать скульптуру с заданными параметрами не удастся. Во второй строке в случае положительного ответа вывести `N` вещественных чисел, разделенных пробелами – длину прутьев с точностью `10^{-6}`. Если существует несколько вариантов решения, нужно вывести один (любой) из них.

Пример ввода

3
30.0 60.0 30.0
10.0 20.0 10.0

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

YES
17.320508 20.000000 20.000000
loading