eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

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

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

Задан полный двудольный граф, каждая доля которого состоит из \textbf{N} вершин. Каждой из вершин приписан вес - целое число. Вес ребра определяется как произведение весов вершин, которые оно соединяет. Как известно, паросочетанием в графе называется множество ребер, попарно не имеющих общих вершин. Паросочетание называют совершенным, если оно покрывает все вершины графа, то есть каждая вершина графа инцидентна какому-либо ребру паросочетания. Ваша задача - найти совершенное минимаксное паросочетание, то есть такое, что максимальный из весов ребер паросочетания будет минимально возможным. \InputFile В первой строке входного файла задано целое число \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{10^5}). Во второй строке - \textbf{N} целых чисел, не превосходящих по абсолютной величине \textbf{10^9}. \textbf{i}-ое число в строке обозначает вес \textbf{i}-ой вершины первой доли графа. В третьей строке аналогичным образом представлены веса вершин второй доли. Вершины каждой доли имеют номера от \textbf{1} до \textbf{N}. \OutputFile В первой строке выходного файла выведите одно целое число - вес совершенного минимаксного паросочетания, т.е. максимальный из весов его ребер. А во второй строке описание этого паросочетания - \textbf{N} целых чисел, \textbf{i}-ое из которых обозначает номер вершины во второй доле, с которой соединена ребром паросочетания \textbf{i}-ая вершина первой доли.
Лимит времени 2 секунды
Лимит использования памяти 64 MiB
Входные данные #1
3
1 2 3
9 10 11
Выходные данные #1
27
3 2 1
Автор В.Неспирный
Источник Зимние сборы в Харькове 2010 День 1