printРайонно-городские командные соревнования

print2. Квадратный корень

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

Выражение 7446.gif может быть упрощено следующим образом:
7447.gif
Напишите программу, выполняющую такое упрощение. Так как упрощение до одного слагаемого возможно не всегда, программа должна минимизировать количество слагаемых. Известно, что если количество слагаемых в результирующем выражении минимально, то варианты упрощения отличаются только порядком слагаемых.
В первой строке входного файла содержатся целое число `N` (`1\ ≤\ N\ ≤\ 50`) – количество слагаемых в исходном выражении. Во второй строке содержится `N` целых чисел от 1 до 1000, разделенных пробелами – числа `A_i`, стоящие под знаком корня в исходном выражении.
В выходной файл вывести строку, содержащую целые числа `B_j`, стоящие под знаком корня в упрощенном выражении, такие что 7448.gif. Числа `B_j` должны быть выведены в порядке возрастания и разделены пробелами. Количество слагаемых после упрощения должны быть минимальным.

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

2
12 48

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

108

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

5
1 3 5 12 20

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

1 27 45
loading