Два купца, живущие в разных городах, в далеком плавании купили несколько видов пряностей и теперь хотят поделить их. Каждый из купцов будет продавать пряности только в своем городе, и цена каждой пряности в этих городах может отличаться. Купцы сочли, что будет справедливым, если они поделят пряности на две доли так, чтобы суммарная стоимость пряностей первой доли в первом городе была равна суммарной стоимости пряностей второй доли во втором городе. Существует несколько способов дележа, удовлетворяющих этому условию, но купцы хотят выбрать из них такой, при котором они получат максимум денег. Пряности являются сыпучим товаром, поэтому они могут быть поделены в любой пропорции.
Рассмотрим пример. Есть три вида пряностей: перец, ваниль и корица. Стоимость всей партии перца в первом и втором городах составляет 120 и 200 условных единиц соответственно. Аналогичная стоимость партии ванили равна 180 и 140 условных единиц, а корицы — 100 и 60 условных единиц. Допустимым способом дележа будет, например, следующий: первый купец возьмет всю ваниль, второй — весь перец, а корицу они поделят поровну. Тогда стоимость доли первого купца в первом городе будет равна 180 + 100 ⋅ 0.5 = 230. Стоимость доли второго купца во втором городе составит 200 + 60 ⋅ 0.5 = 230. Стоимости долей равны, поэтому такой вариант дележа допустим. Но более выгодным будет другой вариант. Первый купец возьмет всю корицу и 3/4 ванили, а второй купец — весь перец и 1/4 ванили. Тогда стоимость доли в первом городе составит 100 + 180 ⋅ 0.75 = 235 и 200 + 140 ⋅ 0.25 = 235 во втором городе. Таким образом, второй вариант является более предпочтительным.
Напишите программу, которая найдет максимальную стоимость долей, при условии того, что дележ будет справедливым.
На вход в первой строке подается одно натуральное число nnn — количество видов пряностей, 1 ≤ n ≤ 100. Во второй строке через пробел записаны nnn натуральных чисел a1, a2, …, an — цены всех видов пряностей в первом городе. Аналогично в третьей строке записаны числа b1, b2, …, bn — цены всех видов пряностей во втором городе, 1 ≤ ai, bi ≤ 10^6.
Программа должна вывести одно число — максимальную стоимость долей. Это число может быть вещественным. Ответ будет считаться верным, если он отличается от ответа жюри не более чем на 0.01.
Программа проверяется на 32 тестах. Прохождение каждого теста оценивается в 1 балл. В первых восьми тестах n ≤ 3. В первых 20 тестах n ≤ 10. Тесты из условия задачи при проверке не используются.
3 120 180 100 200 140 60
235.0
1 100 200
66.66666666666667