Задачі
Мінімаксне паросполучення
Мінімаксне паросполучення
Задано повний дводольний граф, кожна доля якого складається з \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}-та вершина першої долі.
Вхідні дані #1
3 1 2 3 9 10 11
Вихідні дані #1
27 3 2 1