Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/152: Рейтинг темы: голосов - 152, средняя оценка - 4.81
2 / 2 / 0
Регистрация: 26.03.2019
Сообщений: 35

Помогите Никите найти К-ю по полезности банку

16.05.2020, 11:52. Показов 30542. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У Никиты есть n банок газировки, каждая из которых имеет свой объём.

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

Помогите Никите найти К-ю по полезности банку. Встроенные алгоритмы сортировки не использовать.

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


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


Примеры

Ввод
5 5
1 7 2 3 2

Вывод
1


есть код, в интерпритаторе работает, а на проверке нет:
Python
1
2
3
4
5
6
7
8
9
10
11
n, k = map(int, input().split())
a = list(map(int, input().split()))
u = True
while u:
    u = False
    for j in range(n-1):
        if a[j] < a[j+1]:
            a[j], a[j+1] = a[j+1], a[j]
            u = True
    n -= 1
print(a[k-1])
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2020, 11:52
Ответы с готовыми решениями:

Определить во сколько рублей Никите обойдётся покупка лимонада
Задача 2: Напитки из Черноголовки Никита очень любит лимонад из Черноголовки. Во время перерыва в занятии он решил купить немного своего...

Помоги Васе по известной карте аудиторий и коридоров, на которой указаны полезность каждого из коридоров, найти величину максимальной полезности
Помогите плиз решить задачу: Получив новую зачетную книжку, Вася был очень доволен. Но проблема в том, что за ней он ходил в деканат....

Задача про банку
Вася живет в стране Осьляндии, где, как всем известно, люди хранят деньги в банках. На совершеннолетие родители подарили Васе новую чистую...

17
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
16.05.2020, 13:17
Лучший ответ Сообщение было отмечено KiritoSan как решение

Решение

Python
1
2
3
4
5
6
7
8
import queue
q = queue.PriorityQueue()
n, k = map(int, input().split())
for x in input().split():
    q.put(int(x))
    if q.qsize() > k:
        q.get()
print(q.get())
5
3 / 3 / 1
Регистрация: 03.01.2020
Сообщений: 11
17.05.2020, 16:47
слишком долгая для Сириуса)
Python
1
2
3
4
5
6
7
8
9
10
11
n, k = map(int, input().split())
a = list(map(int, input().split()))
for i in range(len(a)):
    score = 0
    m = a[i]
    for j in range(len(a)):
        if a[j] > m :
            score += 1
    if score == k-1:
        print(a[i])
        break
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
17.05.2020, 18:59
хочешь быстрее, решай через буфер на k элементов.
0
3 / 3 / 1
Регистрация: 03.01.2020
Сообщений: 11
17.05.2020, 21:33
спасибо,разобрался
0
1 / 1 / 0
Регистрация: 26.05.2020
Сообщений: 47
26.05.2020, 19:03
А можете на С++ пожалуйста
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.05.2020, 19:23
Цитата Сообщение от massa431 Посмотреть сообщение
А можете на С++ пожалуйста
Для этого есть раздел по C++
0
0 / 0 / 0
Регистрация: 26.05.2020
Сообщений: 1
26.05.2020, 22:09
А если нужно это задание выполнить через сортировку выбора. Как это будет???? Подскажите пожалуйста
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
27.05.2020, 07:00
10^9 и сортировка выбором. нормально
0
2 / 2 / 0
Регистрация: 28.05.2020
Сообщений: 40
30.05.2020, 00:34
Здравствуйте! "У Никиты есть n банок газировки, каждая из которых имеет свой объём." Подскажите на С++, пожалуйста...очень прошу
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
30.05.2020, 07:10
Вия, для этого есть раздел C++. Python тут причем?
Пользуйся поиском прежде чем спросить.
Отсортировать банки по объему
0
2 / 2 / 0
Регистрация: 15.06.2021
Сообщений: 8
15.06.2021, 20:20
там можно в теории только первые сто по объёму, т.к. k<100

Добавлено через 41 минуту
Python
1
2
3
4
5
6
7
8
9
10
11
def selection_sort(a):
    for i in range(min((len(a) - 1),100)):
        imax = i
        for j in range(i + 1, len(a)):
            if a[j] > a[imax]:
                imax = j
        a[i], a[imax] = a[imax], a[i]
    return a
biba,boba=list(map(int,input().split()))
a=list(map(int,input().split()))
print(selection_sort(a)[boba-1])
у меня вышел примерно такой код но он что-то не так считает(т.к. тесты закрыты, то даже не знаю что)

Добавлено через 1 минуту
eaa, не подскажешь?
0
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
15.06.2021, 20:34
KiritoSan, eaa, massa431, Вия, к-ая порядковая статистика - классическая задача
0
14 / 12 / 2
Регистрация: 19.03.2020
Сообщений: 11
24.06.2021, 02:26
Решение через очередь от eaa это кншн оч хорошо и красиво, но вот то что от тебя хотели в сириус курсах

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n,k = map(int,input().split())
 
arr = list(map(int,input().split()))
 
def selection_sort_reversed_optimised (arr,k):
 
    for i in range (len(arr)):
        idle = i
        
        for j in range (i, len(arr)):
            if (arr[idle] < arr[j]):
                idle = j
        arr[i], arr[idle] = arr[idle], arr[i]
        if (i == k-1):
            return arr[:i+1]
 
print (selection_sort_reversed_optimised(arr,k)[k-1])
0
4 / 9 / 2
Регистрация: 05.10.2020
Сообщений: 51
08.04.2022, 19:39
Цитата Сообщение от eaa Посмотреть сообщение
import queue
q = queue.PriorityQueue()
n, k = map(int, input().split())
for x in input().split():
    q.put(int(x))
    if q.qsize() > k:
        q.get()
print(q.get())

Ого, мое почтение! Красиво
0
29 / 27 / 2
Регистрация: 17.07.2019
Сообщений: 38
08.09.2022, 18:39
Лично моё мнение в Сириусе хотят что наподобие такого:
Python
1
2
3
4
5
6
7
8
9
10
11
12
n, k = map(int, input().split())
a = list(map(int, input().split()))
used_maximum = set()
for i in range(k):
    maximum = -1
    index_of_maximum = 0
    for j in range(n):
        if ((j not in used_maximum) and (a[j] > maximum)):
            maximum = a[j]
            index_of_maximum = j
    used_maximum.add(index_of_maximum)
print(maximum)
Дело в том что само ограничение в задаче говорит об этом: O(n*k) алгоритм при n = 10**4 и k = 10**2 выдаст как раз 10**6 элементарных операций. Нетрудно заметить что это решение использует метод выбора который как раз и описывается в лекции сириуса перед этой задачей. Понятно, что существуют более эффективные решения, но эта задача в принципе для новичков и чтобы решить её на этих ограничениях ничего сверхординарного знать не надо.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
08.09.2022, 19:17
Антон Ф, а set тут зачем?

Добавлено через 1 минуту

Не по теме:

я специально писал такое решение, для копипастеров.

0
29 / 27 / 2
Регистрация: 17.07.2019
Сообщений: 38
09.09.2022, 14:55
типа in в сете я точно помню что он работает за О(1) а за сколько он работает в списке я не помню поэтому перестраховался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2022, 14:55
Помогаю со студенческими работами здесь

Задача про банку
На край стола поставили жестяную банку, плотно закрытую крышкой, так, что 2/3 банки свисало со стола. Через некоторое время банка упала....

Какова будет сумма премии банку?
предприниматель берет заем в банке в размере 1000р. сроком на 6 месяцев при норме процента 12% годовых. какова будет сумма премии банку?

Рассчитать объем ссуд в целом по банку
Есть таблица кредитных вложений коммерческого банка по 3-м филиалам. Как рассчитать объем ссуд в целом по банку с помощью команд...

Какая прибыль гарантирована банку с вероятностью
Помогите пожалуйста с задачей Задача: В банке, осуществляющем кредитование населения, 1000 клиентов. Каждому из клиентов выдается...

Функция полезности
Дана функция полезности: u\ =\ 4x_1\ +\ x_2, x_i\ -\ блага. Стоимость благ: c_1\ =\ 2,\ c_2\ =\ 3 у.е. На картинке изображены...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru