Загрузка...

Помогите с задачей

Тема в разделе C/C++ создана пользователем sainara_boy 14 окт 2022. 343 просмотра

  1. sainara_boy
    sainara_boy Автор темы 14 окт 2022 1 7 сен 2021
    Два купца, живущие в разных городах, в далеком плавании купили несколько видов пряностей и теперь хотят поделить их. Каждый из купцов будет продавать пряности только в своем городе, и цена каждой пряности в этих городах может отличаться. Купцы сочли, что будет справедливым, если они поделят пряности на две доли так, чтобы суммарная стоимость пряностей первой доли в первом городе была равна суммарной стоимости пряностей второй доли во втором городе. Существует несколько способов дележа, удовлетворяющих этому условию, но купцы хотят выбрать из них такой, при котором они получат максимум денег. Пряности являются сыпучим товаром, поэтому они могут быть поделены в любой пропорции.

    Рассмотрим пример. Есть три вида пряностей: перец, ваниль и корица. Стоимость всей партии перца в первом и втором городах составляет 120 и 200 условных единиц соответственно. Аналогичная стоимость партии ванили равна 180 и 140 условных единиц, а корицы — 100 и 60 условных единиц. Допустимым способом дележа будет, например, следующий: первый купец возьмет всю ваниль, второй — весь перец, а корицу они поделят поровну. Тогда стоимость доли первого купца в первом городе будет равна 180+100⋅0.5=230180+100⋅0.5=230. Стоимость доли второго купца во втором городе составит 200+60⋅0.5=230200+60⋅0.5=230. Стоимости долей равны, поэтому такой вариант дележа допустим. Но более выгодным будет другой вариант. Первый купец возьмет всю корицу и 3/43/4 ванили, а второй купец — весь перец и 1/41/4 ванили. Тогда стоимость доли в первом городе составит 100+180⋅0.75=235100+180⋅0.75=235 и 200+140⋅0.25=235200+140⋅0.25=235 во втором городе. Таким образом, второй вариант является более предпочтительным.

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

    Формат входных данных
    На вход в первой строке подается одно натуральное число nn — количество видов пряностей, 1≤n≤1001≤n≤100. Во второй строке через пробел записаны nn натуральных чисел a1,a2,…,ana1,a2,…,an — цены всех видов пряностей в первом городе. Аналогично в третьей строке записаны числа b1,b2,…,bnb1,b2,…,bn— цены всех видов пряностей во втором городе, 1≤ai,bi≤1061≤ai,bi≤106.

    Формат выходных данных
    Программа должна вывести одно число — максимальную стоимость долей. Это число может быть вещественным. Ответ будет считаться верным, если он отличается от ответа жюри не более чем на 0.010.01.

    Методика проверки
    Программа проверяется на 32 тестах. Прохождение каждого теста оценивается в 1 балл. В первых восьми тестах n≤3n≤3. В первых 20 тестах n≤10n≤10. Тесты из условия задачи при проверке не используются.

    Sample Input 1:
    3
    120 180 100
    200 140 60

    Sample Output 1:
    235.0

    Sample Input 2:
    1
    100
    200

    Sample Output 2:
    66.66666666666667
     
Top
Загрузка...