Время

15:49:34
24 May 2012
Версия для печати

Минимаксное паросочетание

   Задан полный двудольный граф, каждая доля которого состоит из N вершин. Каждой из вершин приписан вес - целое число. Вес ребра определяется как произведение весов вершин, которые оно соединяет.

   Как известно, паросочетанием в графе называется множество ребер, попарно не имеющих общих вершин. Паросочетание называют совершенным, если оно покрывает все вершины графа, то есть каждая вершина графа инцидентна какому-либо ребру паросочетания.

   Ваша задача - найти совершенное минимаксное паросочетание, то есть такое, что максимальный из весов ребер паросочетания будет минимально возможным.


Технические условия

   Входные данные

   В первой строке входного файла задано целое число N (1N105). Во второй строке - 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


← Иррациональные попарные расстояния Список задач Количество квадратичных вычетов →