26 задание егэ НА ПИТОНЕ 1) По итогам проведения олимпиады по программированию каждый участник получил определённое количество , различное для каждого ученика. По регламенту олимпиады победителя присуждают K лучших участников, а призёра присуждают M лучших участников, следующих за ними. По заданной информации о результатах каждого из участников определите минимальный призёра и минимальный победителя данной олимпиады.
Входные и выходные данные. В первой строке входного файла 26-k3.txt находятся три числа, записанные через пробел: N – общее количество результатов учащихся (натуральное число, не превышающее 10 000), K – количество победителей, M – количество призёров. В следующих N строках находятся значения каждого из результатов (все числа натуральные, не превышающие 1000), каждое в отдельной строке. Запишите в ответе два числа: сначала минимальный призёра, а затем минимальный победителя данной олимпиады.
Пример входного файла:
10 2 4
244
39
213
108
132
18
46
52
242
179
При таких исходных данных ответ должен содержать 2 числа – 108 и 242.
1. Считываем входные данные из файла 26-k3.txt. В первой строке находятся три числа: N, K и M, в следующих N строках содержатся значения результатов участников.
2. Создаем список, в который будем записывать все результаты участников.
3. Считываем N строк результатов и добавляем их в список.
4. Сортируем список в порядке возрастания значений.
5. Используя стандартный срез списка, выбираем первые M элементов списка. Это будут результаты всех призеров.
6. Выводим минимальный призер, который будет являться последним элементом среза.
7. Используя стандартный срез списка, выбираем первые K элементов списка. Это будут результаты всех победителей.
8. Выводим минимального победителя, который будет являться последним элементом среза.
Пример решения на языке Python:
```python
# Шаг 1
with open('26-k3.txt', 'r') as file:
data = file.readlines()
params = list(map(int, data[0].split()))
results = list(map(int, data[1:]))
# Шаг 2
results.sort()
# Шаг 3
winners = results[:params[1]] # Срез первых K элементов
finalist = results[:params[2]] # Срез первых M элементов
# Шаг 4
min_winner = winners[-1]
min_finalist = finalist[-1]
# Вывод результатов
print(min_finalist, min_winner)
```
Таким образом, минимальным призером будет число 108, а минимальным победителем - число 242.