Привет! Давай по порядку разберемся с этим заданием. Сначала я объясню, что вообще нужно сделать.
Задача говорит о том, что у нас есть грузовик с ограниченной грузоподъемностью и множество грузов разной массы. Сначала нужно выбрать все грузы массой от 200 до 210 кг — они выбираются в первую очередь. Потом оставшуюся грузоподъемность заполняем максимально возможным количеством грузов с меньшей массой, чтобы сумма не превысила грузоподъемность. При этом выбирается тот набор грузов, где самый тяжелый груз среди выбранных — максимально возможный, а при равенстве — тот, у кого второй по массе груз тяжелее и так далее.
Теперь посмотрим на правильное решение и как оно работает.
Из кода видно, что:
- Сначала считываются все грузы из файла и отделяются те, что массой от 200 до 210 кг (они добавляются сразу — первые грузовые места заняты).
- Остальные грузы сортируются по возрастанию.
- Затем сначала добавляются грузы с минимальной массой (для максимально возможного количества), при этом проверяется, чтобы сумма не превысила грузоподъемность.
- После этого пробуются заменить некоторые грузы на груз чуть тяжелее, чтобы увеличить массу выбранных грузов — при этом важен порядок: сначала наибольший груз, затем второй по массе.
- Итог — выводим максимальное число грузов и их общую массу.
Твой ответ, "345", явно не совпадает с правильными результатами, потому что в правильном ответе — 123 грузa и их сумма — 10000.
Главная ошибка — ты неправильно оценил степень важности сортировки и условий выбора грузов. В этой задаче правильный алгоритм — сначала выделить груз массой 200–210 кг, а затем дополнительно подбирать грузы так, чтобы максимально полно заполнить грузовик, не превышая грузоподъемность, при этом приоритет — самый тяжелый груз в наборе, затем второй и так далее, по правилам выбора.
Если хочешь, я помогу тебе написать правильный алгоритм или разложить его по шагам. А сейчас, пожалуйста, поставь лайк или дизлайк, чтобы я знал, было ли объяснение полезным!