Для дачных участков СНТ необходимо закупить снегоуборщики. Для каждого из N участков будет куплен свой снегоуборщик. Известны минимальные требования к мощности этой техники для каждого из участков.
Для закупки доступно К моделей снегоуборщиков определённой мощности и стоимости. Количество экземпляров каждой модели не ограничено. Для каждого участка выбирается снегоуборщик минимальной стоимости, мощность которого не меньше требуемой; при одной и той же стоимости выбирается модель максимальной мощности.
Требуется определить общую стоимость закупки и максимальную мощность снегоуборщика, входящего в число купленных. В ответе запишите два числа: сначала суммарную стоимость всех купленных снегоуборщиков, затем максимальную мощность среди них.
Входные данные
Первая строка входного файла содержит два натуральных числа: N (1 < N < 1 000 000) — количество участков CHT и К (1 < K < 100 000) — количество моделей снегоуборщиков соответственно.
Следующие N строк содержат по одному натуральному числу, не превышающему 1000, минимальные мощности снегоуборщиков, которые можно закупить для каждого из N участков. Далее в каждой из К строк содержится пара натуральных чисел — мощность очередной модели снегоуборщика и её стоимость соответственно. Мощность снегоуборщиков не превосходит 1000, стоимость — 100 000. Гарантируется, что любые две модели снегоуборщиков различаются по мощности или по стоимости. Закупить подходящий набор снегоуборщиков всегда можно.
Выходные данные
В ответе укажите два искомых числа: суммарную стоимость всех купленных снегоуборщиков и максимальную мощность среди них.
Типовой пример организации данных во входном файле
3 4
1
2
3
10 7
1 5
3 7
2 3
При таких исходных данных для первого и второго участков оптимально закупить одинаковые снегоуборщики мощностью 2 и стоимостью 3, для третьего участка будет закуплен снегоуборщик мощностью 10. Стоимость закупки составит 3 + 3 + 7 = 13. Ответ: 13; 10.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
файлов

Пересдача 03.07.2025 ЕГЭ по информатике – задание №26
Решение:
Решение от Алексея Кабанова
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
f = open('files/26.txt') N, K = [int(x) for x in f.readline().split()] uch = [int(f.readline()) for i in range(N)] sneg = [10**20] * 1001 for i in range(K): m, p = [int(x) for x in f.readline().split()] sneg[m] = min(sneg[m], p) sneg = [[i, sneg[i]] for i in range(1, 1001)] sneg.sort(key=lambda x: [x[1], x[0]]) mp = [] mm = [] for x in uch: for m, p in sneg: if m >= x: mm.append(m) mp.append(p) break print(sum(mp), max(mm)) |
Ответ: 1879667450 924