Для перевозки партии грузов различной массы выделен грузовик, но его
Условие
Для перевозки партии грузов различной массы выделен грузовик, но его грузоподъёмность ограничена, поэтому перевезти сразу все грузы не удастся. Грузы массой от 200 до 210 кг грузят в первую очередь, гарантируется, что все такие грузы поместятся. На оставшееся после этого место стараются взять как можно больше грузов. Если это можно сделать несколькими способами, выбирают тот способ, при котором самый большой из выбранных грузов имеет наибольшую массу. Если и при этом условии возможно несколько вариантов, выбирается тот, при котором наибольшую массу имеет второй по величине груз, и так далее. Известны количество грузов, масса каждого из них и грузоподъёмность грузовика. Необходимо определить количество и общую массу грузов, которые будут вывезены при погрузке по вышеописанным правилам.
Входные данные.
Задание 26Первая строка входного файла содержит два целых числа: N — общее количество грузов и M — грузоподъёмность грузовика в кг. Каждая из следующих N строк содержит одно целое число — массу груза в кг.В ответе запишите два целых числа: сначала максимально возможное количество грузов, затем их общую массу.
Пример входного файла:6 605140205120160100340 В данном случае сначала нужно взять груз массой 205 кг. После этого можно вывезти ещё максимум 3 груза. Это можно сделать тремя способами: 140 + 120 + 100, 140 + 160 + 100, 120 + 160 + 100. Выбираем способ, при котором вывозится груз наибольшей возможной массы. Таких способов два: 140 + 160 + 100 и 120 + 160 + 100. Из этих способов выбираем тот, при котором больше масса второго по величине груза, то есть 140 + 160 + 100. Всего получается 4 груза общей массой 605 кг. В ответе надо записать числа 4 и 605. Ответ:
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Сначала считаем в массив данные из файла. После этого отсортируем массив в порядке возрастания. Таким образом, последовательно складывая элементы массива с начала и сравнивая сумму с размером грузоподъемности грузовика, получим максимальное количество грузов, которые могут поместиться в грузовике. Далее, вычитая из найденной суммы вес наибольшего груза в текущей последовательности, будем пробовать прибавлять грузы с большим весом. Далее такую же последовательность действий применим ко второму по величине грузу, потом к третьему и так далее. Приведём решение на языке PascalABC.var i, j, t, count: integer;a: array [1..1000] of integer;s: integer;n: integer;sum: integer;maxi: integer;f: text;begin assign(f,'C:\26.txt'); reset(f); readln(f, n, s); sum := 0; count := 0; for i := 1 to 1000 do a[i] := 0; for i := 1 to n do begin readln(f, t); if ((t >=
Осталось ещё 2 шага
and (sum + t <= s)) then begin sum := sum +…
Примечание. Путь к файлу необходимо указать…
Бесплатно · займёт минуту