Форум » Массивы, сортировка, работа с файлами » Задача № 2836 » Ответить

Задача № 2836

shervlad: Всем здравствуйте! Помогите разобраться с задачкой, не получается никак... Готовый код не прошу (хотя, если выложите, будет здорово), наведите хотя бы на мысль, как реализовать решение. Пишу на питоне.

Ответов - 4

Поляков: shervlad пишет: наведите хотя бы на мысль, как реализовать решение. 1) Подумать, по какому критерию нужно отсортировать. Тут нужно сортировать два массива одновременно. В Python можно составить массив из кортежей (пар) и при вызове метода sort применить лямбда-функцию. Или ручками. 2) Взять первые K элементов отсортированного массива. 3) Для отобранных элементов найти и вывести сумму весов. 4) В отобранных элементах найти груз максимального веса и вывести его стоимость.

check8386: Задача легко решается в EXCEL. Не правильнее ли будет "самый большой" отправленный пакет назвать, например, самым тяжелым? Или это ловушка и дети поймут правильно?

shervlad: Насчёт EXCEL - согласен, задача там решилась достаточно быстро, просто хотелось попробовать решить ее с помощью программы :) У меня код получился такой: f = open("26-k6.txt") n,k = map(int,f.readline().split()) a = [] for i in range(n): ----a.append(list(map(int,f.readline().split()))) ----a.append(a[1]/a[0]) a.sort(key = lambda x: (x[2],-x[1])) s,m = 0,0 for i in range(k): ----s+=a[0] ----if a[0] > m: --------m = a[1] print(s,m) Извиняюсь за отступы дефисами, не понял, как сделать отступы, чтобы они отображались.. Подскажите, можно ли как-то еще решение реализовать? Может, есть способ сделать проще?


check8386: Для отступов можно в редакторе выбрать моноширинный шрифт (седьмая иконка с конца)



полная версия страницы