На языке python!
юный биолог андрей собирается в экспедицию. у него имеется n
предметов, которые он хотел бы взять с собой. к сожалению, все их взять невозможно, поскольку в рюкзак помещается только m предметов. поняв это, андрей для каждого предмета i определил его полезность в экспедиции pi. теперь осталось выяснить, какие же предметы нужно взять, чтобы их суммарная полезность была максимальной, а их количество не превосходило m.
формат ввода:
первая строка содержит 2 натуральных числа n и m, 2 ≤ n ≤ 106, 1 ≤ m < n. вторая строка содержит n натуральных чисел pi, 1 ≤ pi ≤ 106.
формат вывода:
в единственной строке требуется в порядке невозрастания вывести полезности тех предметов, которые нужно взять.
пример:
ввод - 6 4
9 9 12 11 7 11
вывод - 12 11 11 9

whitesnaff whitesnaff    1   17.12.2019 13:54    10

Ответы
0ananasik0 0ananasik0  27.01.2024 08:28
Добрый день! Давайте решим задачу по шагам:

1. Сначала прочитаем входные данные. В первой строке заданы числа n и m, разделенные пробелом. Вторая строка содержит n чисел, разделенных пробелом, это значения полезности предметов. Примем эти значения и запишем их в переменные n, m и items:

```python
input_line1 = input().split()
n = int(input_line1[0])
m = int(input_line1[1])

input_line2 = input().split()
items = [int(item) for item in input_line2]
```

2. Создадим список indexes, который будет содержать индексы предметов в порядке невозрастания полезности:

```python
indexes = sorted(range(n), key=lambda x: items[x], reverse=True)
```

3. Создадим пустой список result, в котором будем хранить индексы предметов, которые нужно взять:

```python
result = []
```

4. Пройдемся по индексам предметов в порядке невозрастания полезности и добавим их в список result, пока его размер не превысит m:

```python
for i in indexes:
if len(result) < m:
result.append(i)
else:
break
```

5. Выведем значения полезности предметов в порядке, заданном списком result:

```python
for i in result:
print(items[i], end=' ')
```

Теперь, когда у нас есть подробное пошаговое решение, я надеюсь, что школьнику будет понятно, как работает программа. Если есть какие-либо вопросы или что-то не ясно, пожалуйста, дайте знать!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика