Бесплатное занятие с репетитором 1 на 1! Оценим уровень знаний, разберём тему,
сформируем план подготовки к ЕГЭ. Запишись через тг-бот

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

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

    №26 по КИМ

    Для перевозки партии грузов различной массы выделен грузовик, но его грузоподъёмность ограничена, поэтому перевезти сразу все грузы не удастся. Грузы массой от 200 до 210 кг грузят в первую очередь. На оставшееся после этого место стараются взять как можно больше грузов. Если это можно сделать несколькими способами, выбирают тот способ, при котором самый большой из выбранных грузов имеет наибольшую массу. Если и при этом условии возможно несколько вариантов, выбирается тот, при котором наибольшую массу имеет второй по величине груз, и т. д. Известны количество грузов, масса каждого из них и грузоподъёмность грузовика. Необходимо определить количество и общую массу грузов, которые будут вывезены при погрузке по вышеописанным правилам.

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

     

    Задание 26

     

    Первая строка входного файла содержит два целых числа: N — общее количество грузов и M — грузоподъёмность грузовика в кг. Каждая из следующих N строк содержит одно целое число — массу груза в кг.

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

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

    6 605

    140

    205

    120

    160

    100

    340

    В данном случае сначала нужно взять груз массой 205 кг. После этого можно вывезти ещё максимум 3 груза. Это можно сделать тремя способами: 140 + 120 + 100, 140 + 160 + 100, 120 + 160 + 100. Выбираем способ, при котором вывозится груз наибольшей возможной массы. Таких способов два: 140 + 160 + 100 и 120 + 160 + 100. Из этих способов выбираем тот, при котором больше масса второго по величине груза, то есть 140 + 160 + 100. Всего получается 4 груза общей массой 605 кг. В ответе надо записать числа 4 и 605.

     

    Ответ

    Ответ:

    123 10000

    Решение

    Сначала считаем в массив данные из файла. После этого отсортируем массив в порядке возрастания. Таким образом, последовательно складывая элементы массива с начала и, сравнивая сумму с размером грузоподъемности грузовика, получим максимальное количество грузов, которые могут поместиться в грузовике. Далее, вычитая из найденной суммы вес наибольшего груза в текущей последовательности, будем пробовать прибавлять грузы с большим весом. Далее такую же последовательность действий применим ко второму по величине грузу, потом к третьему и т. д.

     

    Приведём решение на языке Python.

     

    f = open('26.txt')
    a, b = f.readline().split()
    d = []
    s = 0
    count = 0
    for i in f:
        if 200 <= int(i) <= 210:
            s += int(i)
            count += 1
        else:
            d.append(int(i))
    d.sort()
    d2 = []
    i = 0
    while sum(d2) + d[i] <= int(b) - s:
        count += 1
        d2.append(d[i])
        i += 1
    k = len(d) - 1
    while i > 0:
        while k >= 0:
            if sum(d2) - d2[i-1] + d[k] <= int(b) - s and d[k] != 0:
                d2[i-1] = d[k]
                d[k] = 0
                i -= 1
                break
            else:
                k -= 1
    s += sum(d2)
    print(count, s)

     

    В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 123 10000.

     

    Ответ: 123 10000.

    Понятно ли решение?

    Решения от учеников
    0

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

    15
    Задание №52585Задание №46720Задание №46721Задание №46752Задание №2595Задание №2602Задание №2601Задание №56113Задание №11023Задание №11022Задание №11021Задание №11026Задание №11025Задание №51424Задание №56118
    Бесплатно

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

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

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