Новогодний экспресс-контест


        Задача A. Дружественные числа

Два различных натуральных числа называются дружественными, если первое из них равно сумме делителей второго числа, за исключением самого второго числа, а второе равно сумме делителей первого числа, за исключением самого первого числа. Требуется найти все пары дружественных чисел, оба из которых принадлежат промежутку от M до N.
Ограничения: 1 <= M <= N <= 1 000 000, все числа целые, время 1 с.
Ввод из файла friendly.in. В первой строке находятся числа M и N.
Вывод в файл friendly.out. В каждой строке вывести по паре чисел через пробел. Первое число пары должно быть меньше второго. Строки должны быть отсортированы в порядке возрастания первого числа пары. Если пар дружественных чисел в промежутке нет, вывести "Absent".
Примеры
Ввод 1      Ввод 2      Ввод 3
200 300     200 250     185000 205000
Вывод 1     Вывод 2     Вывод 3
220 284     Absent      185368 203432
                        196724 202444
Комментарий к примеру 1
220=1+2+4+71+142 (все делители числа 284);
284=1+2+4+5+10+11+20+22+44+55+110 (все делители числа 220).

        Задача B. Скобки (2)

Вывести все правильные скобочные выражения длиной N, состоящие из круглых и квадратных скобок.
Ограничения: 1 <= N <= 14, N - чётное, время 1 с.
Ввод из файла bracket2.in. В первой строке находится единственное число N.
Вывод в файл bracket2.out. Каждое выражение выводится в отдельной строке.
Примеры
Ввод 1
4
Вывод 1
(())
[[]]
[()]
()[]
[]()
()()
([])
[][]

        Задача C. Маршрут (2)

Дана матрица NxN, заполненная положительными числами. Путь по матрице начинается в левом верхнем углу. За один ход можно пройти в соседнюю по вертикали или горизонтали клетку (если она существует). Нельзя ходить по диагонали, нельзя оставаться на месте. Требуется найти максимальную сумму чисел, стоящих в клетках по пути длиной K (клетку можно посещать несколько раз).
Ограничения: 2 <= N <= 100, элементы матрицы имеют значения от 1 до 9999, 1 <= K <= 2000, все числа целые, время 1 с.
Ввод из файла route2.in. В первой строке находятся разделенные пробелом числа N и K. Затем идут N строк по N чисел в каждой.
Вывод в файл route2.out. Вывести одно число - максимальную сумму.
Примеры
Ввод 1
5 7
1 1 1 1 1
1 1 3 1 9
1 1 6 1 1
1 1 3 1 1
1 1 1 1 1
Вывод 1
21

        Задача D. Выпуклая оболочка

На плоскости заданы N точек своими декартовыми координатами. Найти минимальный периметр многоугольника, содержащего все эти точки. Гарантируется, что искомый многоугольник имеет ненулевую площадь.
Ограничения: 3 <= N <= 1000, -10 000 <= xiyi <= 10 000, все числа целые, все точки различны, время 1 с.
Ввод из файла conhull.in. В первой строке находится число N, далее - N строк с парами координат.
Вывод в файл conhull.out. Вывести одно число - длину периметра с одним знаком после запятой.
Примеры
Ввод 1
5
1 0
0 1
-1 0
0 -1
0 0
Вывод 1
5.7

        Задача E. Системы счисления

Дано целое неотрицательное число в I-ричной системе счисления. Вывести это число в J-ричной системе счисления.
Ограничения: 2 <= IJ <= 36, для представления цифр 10...35 используются прописные латинские буквы A...Z соответственно, число разрядов исходного числа не превышает 1000, время 1 с.
Ввод из файла scale.in. В первой строке находятся числа I и J (в десятичной системе счисления), во второй строке - число для перевода.
Вывод в файл scale.out. Вывести искомое число. Если число начинается с буквы, перед ней не должно быть нуля.
Примеры
Ввод 1
10 36
29234652
Вывод 1
HELLO

        Задача F. День рождения

Заданы день и месяц рождения, а также текущие день, месяц и год. Определить, сколько дней осталось до дня рождения.
Примечание. Високосные годы - это те, номер которых делится на 400, а также те, номер которых делится на 4, но не делится на 100.
Ограничения: год от 1920 до 3000, месяц - от 1 до 12, день - от 1 до числа дней в месяце, время 1 с.
Ввод из файла birthday.in. В первой строке находятся разделённые пробелами день и месяц рождения, во второй - разделённые пробелами текущие день, месяц и год.
Вывод в файл birthday.out. Вывести число дней, оставшихся до дня рождения.
Примеры
Ввод 1       Ввод 2       Ввод 3
19 04        05 05        29 02
19 04 2002   19 04 2002   28 02 2001
Вывод 1      Вывод 2      Вывод 3
0            16           1096