Задача C. Юбилей Имя входного файла: стандартный поток ввода
Имя выходного файла: стандартный поток вывода
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мебибайт
Сегодня у Мишиной бабушки юбилей: ей исполняется 90 лет! В честь такой знаменательной даты он решил приготовить подарок своими руками. Миша знает, что его бабушка —
в математик — точно обрадуется, если получит в подарок число. Он достал все
фигурки цифр, которые у него были, и разложил их в ряд, в результате чего получилось
число N.
Миша решил, что такое банальное число его бабушке не понравится. Теперь он хочет
узнать наибольшее число, кратное 90, которое может быть получено перестановкой цифр
числа N.
Формат входных данных
В единственной строке задано натуральное число N.
Формат выходных данных
Выведите единственное число — ответ на поставленную задачу, если он существует.
В противном случае, выведите «−1» (без кавычек).
Примеры
стандартный поток ввода стандартный поток вывода
90 90
207 720
3456 -1
Подзадача 1 ( : 30)
В N не более 1000 цифр.
Подзадача 2 ( : 70)
В N не более 105 цифр.
Решение в Паскале
//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
writeln('III');
var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;
writeln;
while a.Any() do
begin
write(a[0], ' ');
a.RemoveAt(0);
if not a.Any then break;
write(a.Last, ' ');
a.RemoveAt(a.Count - 1);
if not a.Any then break;
var n := 0;
if a.Count > 1 then n := a.Count div 2 - 1;
write(a[n], ' ');
a.RemoveAt(n);
end;
end.
Объяснение: