После затянувшегося совещания директор фирмы решил заказать такси, чтобы развезти сотрудников по домам. Он заказал N машин - ровно столько, сколько у него сотрудников. Однако когда они подъехали, оказалось, что у каждого водителя такси свой тариф за 1 километр.
Директор знает, какому сотруднику сколько километров от работы до дома (к сожалению, все сотрудники живут в разных направлениях, поэтому нельзя отправить двух сотрудников на одной машине). Теперь директор хочет определить, какой из сотрудников на каком такси должен поехать домой, чтобы суммарные затраты на такси (а их несет фирма) были минимальны.
Формат входных данных. Сначала вводится натуральное число N (1≤N≤1000) - количество сотрудников компании (совпадающее с количеством вызванных машин такси). Далее вводится N чисел, задающих расстояния в километрах от работы до домов сотрудников компании (первое число - для первого сотрудника, второе - для второго и т.д.). Все расстояния - положительные целые числа, не превышающие 1000. Далее вводится еще N чисел - тарифы за проезд одного километра в такси (первое число - в первой машине такси, второе - во второй и т.д.). Тарифы выражаются положительными целыми числами, не превышающими 10000.
Формат выходных данных. Выведите N чисел. Первое число - номер такси, в которое должен сесть первый сотрудник, второе число - номер такси, в которое должен сесть второй и т.д., чтобы суммарные затраты на такси были минимальны. Если вариантов рассадки сотрудников, при которых затраты минимальны, несколько, выведите любой из них.
Упрощение (можно сдать в систему как задачу J): научитесь решать задачу, в которой вам не требуется выводить кто на каком такси должен ехать, а нужно лишь посчитать минимальное суммарное количество денег, которое придется заплатить.
Пример ввода | Пример вывода | Ответ для упрощенной задачи |
3 10 20 30 50 20 30 |
1 3 2 |
1700 |
5 10 20 1 30 30 3 3 3 2 3 |
1 2 3 5 4 |
243 |