Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Карточки Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №0
  • Задание №0
  • Задание №60519 ЕГЭ Информатике

    Условие задания #60519

    №0 по КИМ

    У медицинской компании есть N   пунктов приёма биоматериалов на анализ. Все пункты расположены вдоль автомагистрали и имеют номера, соответствующие расстоянию от нулевой отметки до конкретного пункта. Известно количество пробирок, которое ежедневно принимают в каждом из пунктов. Пробирки перевозят в специальных транспортировочных контейнерах вместимостью V   пробирок. Каждый транспортировочный контейнер упаковывается в пункте приёма и вскрывается только в лаборатории. Компания планирует открыть лабораторию в одном из пунктов. Стоимость перевозки биоматериалов равна произведению расстояния от пункта до лаборатории на количество контейнеров с пробирками. Общая стоимость перевозки за день равна сумме стоимостей перевозок из каждого пункта в лабораторию. Лабораторию расположили в одном из пунктов приёма биоматериалов таким образом, что общая стоимость доставки биоматериалов из всех пунктов минимальна. Определите минимальную общую стоимость доставки биоматериалов из всех пунктов приёма в лабораторию.

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

    Даны два входных файла — A   и B  , каждый из которых содержит в первой строке число N   (1 ≤ N ≤ 10000000  ) – количество пунктов приёма биоматериалов, и число V   (1 ≤ V ≤ 1000  ) – вместимость транспортировочного контейнера. Каждая из следующих N   строк содержит два натуральных числа: номер пункта и количество пробирок (не превышающее 10000). Пункты перечислены в произвольном порядке.

    Пример входного файла:

    6 96

    5 4

    7 3

    1 100

    10 190

    2 200

    8 2

    При таких исходных данных (вместимость транспортировочного контейнера равна 96 пробирок) компании выгодно открыть лабораторию в пункте 2. В том случае сумма транспортных затрат составит 1⋅2+ 3 ⋅1+ 5⋅1 + 6⋅1+ 8 ⋅2 = 32  . Ответ: 32.

    27_A__wb4z.txt

    27_B__wb50.txt

    Ответ

    Ответ:

    128822 6201378713

    Решение

    f = open(’27_B.txt’)
    n, v = map(int, f.readline().split())
    a = []
    for i in range(n):
        s, k = map(int, f.readline().split())
        # кол-во сумок
        if k % v == 0:
            c = k//v
        else:
            c = k//v + 1
        a.append([s, c])
    a.sort()
    
    bags = [0]*n
    bags[0] = a[0][1]
    for i in range(1,n):
        bags[i] = bags[i-1] + a[i][1]
    
    s = 0
    for j in range(n):
      s += abs(a[0][0]-a[j][0])*a[j][1]
    
    min_sum = s
    for i in range(1,n):
        diff = a[i][0] - a[i-1][0] 
        s = s + diff*bags[i-1] - diff*(bags[n-1]-bags[i-1])
        min_sum = min(min_sum,s)
    
    print(min_sum)
    Понятно ли решение?

    Похожие задания

    15
    Задание №71953Задание №71952Задание №20415Задание №71951Задание №20414Задание №20416Задание №31793Задание №20408Задание №38017Задание №71950Задание №21583Задание №75926Задание №75924Задание №75922Задание №75919
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме