Contest.samsu.ru :: соревнования по программированию
Русская версия || English version
Login:
Password:
Забыли пароль?
 пример поиска: Вася Пупкин
 

E. Мороженое

Задачу добавил: alef

Успешно сдано решений: 89

ограничение по времени на тест
1 секунда

ограничение по памяти на тест
256 мегабайт

ввод - стандартный ввод
вывод - стандартный вывод

Танцевальный марафон окончился, и организаторы подводят итоги. А пока идёт подсчёт, всех участников пригласили на танцпол, попросили выстроиться в ряд и вручили каждому по мороженому.

Про каждого участника известно, какое мороженое он получил и какое мороженое он больше всего любит. Т.е., участник #j получил мороженое сорта sj, при этом больше всего он любит мороженое сорта mj. Также известно, что чем меньше разность , тем более довольным будет участник.

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

Поскольку день жаркий, и мороженое может быстро растаять, каждый участник может поменяться своим мороженым только один раз. А поскольку организаторы просят участников сохранять ряд, участник может поменяться своим мороженым только с непосредственным соседом слева или с непосредственным соседом справа (конечно, если таковые есть).

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

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

В первой строке содержится целое число n (1 ≤ n ≤ 105) — количество участников в ряду.

Во второй строке содержится n целых чисел s1, s2, ..., sn (1 ≤ sj ≤ 105,  j = 1, 2, ..., n) — сорта мороженого, которые были выданы участникам; sj выдан участнику #j.

В третьей строке содержится n целых чисел m1, m2, ..., mn (1 ≤ mj ≤ 105,  j = 1, 2, ..., n) — сорта мороженого, которые более всего любят участники; mj является наиболее любимым сортом участника #j.

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

В первой строке выведите минимально возможное недовольство самого недовольного участника.

Во второй строке выведите n чисел через пробел. На позиции #i выведите либо собственно число i, если участник не будет ни с кем меняться мороженым, либо номер участника, с которым участник #i должен поменяться мороженым.

Если существует несколько возможных планов обменов, выведите любой.

Система оценки

Подзадача 1 (до 20 баллов)

1 ≤ n ≤ 15

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

Подзадача 2 (до 80 баллов)

Входные данные могут принимать любые допустимые значения.

Баллы начисляются в случае прохождения всех тестов группы.

По запросу сообщается номер первого непройденного теста в группе

Пример
Входные данные
3
3 4 5
4 5 3
Выходные данные
1
1 3 2
Примечание

Рассмотрим приведённый пример.

Могло быть три варианта развития событий:

Сдать задачу

Задать вопрос жюри по этой задаче