Larisaodinets5
?>

На языке 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

Информатика

Ответы

Mexx9050
Добрый день! Давайте решим задачу по шагам:

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=' ')
```

Теперь, когда у нас есть подробное пошаговое решение, я надеюсь, что школьнику будет понятно, как работает программа. Если есть какие-либо вопросы или что-то не ясно, пожалуйста, дайте знать!

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

На языке 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
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

sonicegle
annashersheva
krtatiana69
tarigor
Valentinovna
vmnk38
krimenu5033
Андреевна
annapiskun1
artem
Vik1744184
edvlwork15
Рогова Ольга1156
dimaproh
spikahome