Минимаксное паросочетание
Задан полный двудольный граф, каждая доля которого состоит из N вершин. Каждой из вершин приписан вес - целое число. Вес ребра определяется как произведение весов вершин, которые оно соединяет.
Как известно, паросочетанием в графе называется множество ребер, попарно не имеющих общих вершин. Паросочетание называют совершенным, если оно покрывает все вершины графа, то есть каждая вершина графа инцидентна какому-либо ребру паросочетания.
Ваша задача - найти совершенное минимаксное паросочетание, то есть такое, что максимальный из весов ребер паросочетания будет минимально возможным.
Технические условия
Входные данные
В первой строке входного файла задано целое число N (1 ≤ N ≤ 105). Во второй строке - N целых чисел, не превосходящих по абсолютной величине 109. i-ое число в строке обозначает вес i-ой вершины первой доли графа. В третьей строке аналогичным образом представлены веса вершин второй доли. Вершины каждой доли имеют номера от 1 до N.
Выходные данные
В первой строке выходного файла выведите одно целое число - вес совершенного минимаксного паросочетания, т.е. максимальный из весов его ребер. А во второй строке описание этого паросочетания - N целых чисел, i-ое из которых обозначает номер вершины во второй доле, с которой соединена ребром паросочетания i-ая вершина первой доли.
Информация о задаче
Лимит времени: 2 секундыЛимит памяти: 64 MB
Баллы за пройденный тест: 2.27273
Сложность: 63% 3/8
Автор: В.Неспирный
Источник: Зимние сборы в Харькове 2010 День 1
Пример
Пример входных данных3 1 2 3 9 10 11 |
Пример выходных данных27 2 3 1 |
| ← Иррациональные попарные расстояния | Список задач | Количество квадратичных вычетов → |
