жостка нада C++
В коробке, заполненной N картами, некоторые с 1, некоторые с 0, а некоторые с -1, мы столкнулись со сложной задачей. Нам нужно было выбрать K карт, чтобы максимизировать сумму их номеров.
Входные данные
Первая строка содержит N и K (0≤N,K≤2×109
)
Выходные данные
Выведите максимально возможную сумму чисел, написанных на выбранных K карточках.
Примеры
входные данныеСкопировать
4 3
1 -1 1 0
выходные данныеСкопировать
2
входные данныеСкопировать
6 4
-1 -1 0 0 1 -1
выходные данныеСкопировать
0
Ответы
Для розв'язання цієї задачі можна використати наступний підхід:
1. Створити список `cards`, який буде містити значення номерів на картах.
2. Відсортувати список `cards` в порядку зростання.
3. Обрати перші `K` елементів зі списку `cards`, які мають найменші значення.
4. Пройтись по цим `K` обраним карточкам і обчислити їх суму.
5. Вивести отриману суму.
Ось реалізація даного алгоритму на Python:
```python
N, K = map(int, input().split())
cards = list(map(int, input().split()))
cards.sort() # Сортуємо карточки
sum_of_numbers = sum(cards[:K]) # Обчислюємо суму перших K карточок
print(sum_of_numbers) # Виводимо результат
```
Вхідні дані мають бути введені з клавіатури, а результат буде виведений на екран. У першому рядку введення потрібно вказати значення `N` та `K`, розділені пробілом. У другому рядку введення необхідно вказати значення кожної карти, розділені пробілом.
Будь ласка, зверніть увагу, що цей код не містить перевірок на відповідність вхідних даних обмеженням, описаним у завданні. В реальних проектах рекомендується додати перевірки на коректність вхідних даних.