М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

НА ЯЗЫКЕ С++ КОД НУЖЕН
К -тая банка
У Никиты есть n банок газировки, каждая из которых имеет свой объём.

Известно, что полезнее всего пить газировку, начиная от банок большего объема и переходя к всё меньшим Никите найти k-ю по полезности банку. Встроенные алгоритмы сортировки не использовать.

Входные данные

В первой строке записаны два числа 1≤n≤105 и 1≤k≤103. Гарантируется, что k≤n.

Далее в строке записаны n целых чисел 0≤ai≤2⋅109 — объёмы банок.

Выходные данные

Вывести объём k-ой в порядке полезности банки.

Примеры
Ввод 1
5 5
1 7 2 3 2
Вывод
1

👇
Ответ:
DianaBiktagirova
DianaBiktagirova
23.01.2021
Хорошо, давай разберемся с этой задачей.

Задача заключается в нахождении k-ой по полезности банки с газировкой из заданного списка.

**Код на языке C++:**

```c++
#include
#include
#include

using namespace std;

int main() {
int n, k;
cin >> n >> k;

vector volumes(n);
for (int i = 0; i < n; i++) {
cin >> volumes[i];
}

sort(volumes.begin(), volumes.end(), greater());

cout << volumes[k-1] << endl;

return 0;
}
```

**Пояснение кода:**

1. Мы используем следующие библиотеки:
- `iostream` для ввода-вывода.
- `algorithm` для использования функции `sort` для сортировки вектора.
- `vector` для хранения объемов банок.

2. Мы объявляем переменные `n` и `k`, которые будут содержать количество банок и номер k-ой банки соответственно.

3. Затем мы создаем вектор `volumes`, который будет содержать объемы банок.

4. Мы читаем значения объемов банок из входных данных и сохраняем их в вектор.

5. Мы сортируем вектор `volumes` в порядке убывания, чтобы банки с наибольшим объемом были в начале вектора.

6. Мы выводим k-ый элемент вектора `volumes-1`, так как в C++ индексация начинается с 0.

7. Затем мы возвращаем 0, чтобы показать, что программа успешно завершилась.

**Решение:**

Для примера входных данных `5 5 1 7 2 3 2`, мы должны найти 5-ую по полезности банку. Объемы банок: `1 7 2 3 2`. Мы сортируем их в порядке убывания: `7 3 2 2 1`. Таким образом, 5-ая по полезности банка будет равна 1.

Вывод: 1
4,8(23 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ