Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
 Аватар для medusa_l_0011
7 / 6 / 1
Регистрация: 08.05.2021
Сообщений: 86

Успеть к Новому Году

22.12.2022, 19:44. Показов 1739. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые Господа. помогите разобраться с ошибкой. есть такая вот задача:
В последний день уходящего 2016 года Лимак собирается принять участие
в соревновании по спортивному программированию. Соревнование начнётся в 20:00
и будет продолжаться четыре часа, то есть ровно до полуночи.
Участникам будет предложено N задач, упорядоченных по возрастанию сложности,
то есть задача 1 будет самой лёгкой, а задача номер n — самой сложной.
Лимак знает, что ему потребуется 5·i минут на решение i-й задачи.

Друзья Лимака планирую устроить роскошную новогоднюю вечеринку
и Лимак хочет прибыть в полночь или ранее. Он знает, что ему требуется
ровно K минут чтобы добрать до места проведения вечеринки от своего дома,
где он собирается участвовать в соревновании.

Сколько максимум задач может успеть решить Лимак, так чтобы не опоздать
на новогоднюю вечеринку?

Входные данные
В первой строке входных данных записаны два целых числа n и k (1 ≤ n ≤ 10, 1 ≤ k ≤ 240)
— количество задач в соревновании и количество минут, за которое Лимак доберётся
от дома до места проведения вечеринки.

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

Примечание
======================================== ======================================
В первом примере на соревновании участникам предложено 3 задачи и Лимаку
требуется 222 минуты, чтобы доехать до места проведения вечеринки.
Для решения задач требуется 5, 10 и 15 минут соответственно.
Лимак может решить первые две задачи, потравив на это 5 + 10 = 15 минут,
после чего выехать в 20:15 и приехать на вечеринку в 23:57 (через 222 минуты).
Таким образом он решит две задачи, но на решение третьей времени уже не хватит
и ответ равен 2.

Во втором примере Лимак может решить все 4 задачи за 5 + 10 + 15 + 20 = 50 минут.
В 20:50 он сможет выехать из дома и прибыть на вечеринку ровно в полночь.

В третьем примере Лимаку нужна только 1 минута, чтобы оказаться на вечеринке,
так что ему хватит времени для решения всех 7 задач.

Sample Input 1:
3 222

Sample Output 1:
2

Sample Input 2:
4 190

Sample Output 2:
4

Sample Input 3:
7 1

Sample Output 3:
7

Sample Input 4:
1 240

Sample Output 4:
0

Sample Input 5:
10 1

Sample Output 5:
9
Я написал не правильный код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n, k = map(int, input().split())
kc = 240
s = ((5 + 5 * n) * n) / 2
krez = k + s
count = 0
while krez > kc:
    n -= 1
    count += n
    if n == count:
        break
if krez <= kc:
    count = n
print(count)
Все работает симпатично ровно до момента если в 4 проверке поменять местами входные данные. Помогите пожалуйста найти ошибку, а точнее правильно прописать count после while krez > kc. Что-то у меня не выходит.((( Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2022, 19:44
Ответы с готовыми решениями:

Открытки к Новому году
Давайте поздравим всех своих близких не только прекрасными слловами любви, но и подарим им открытку сделанную своими руками. Сделаем...

Программа к новому году
Поздравим с новым годом... Оцените прогу... 6 файлов качайте: http://www.sltk.narod.rusetup_s.exe ...

Открытка к новому году
Нужно нарисовать открытку к новому году, на завтра. Желательно до утра. Заранее спасибо.

11
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,688
Записей в блоге: 29
22.12.2022, 19:48
Цитата Сообщение от medusa_l_0011 Посмотреть сообщение
Я написал не правильный
предъявите
0
 Аватар для medusa_l_0011
7 / 6 / 1
Регистрация: 08.05.2021
Сообщений: 86
22.12.2022, 20:38  [ТС]
Welemir1, так я написал код. конечно, если продублирую. Спасибо.

Добавлено через 41 минуту
Welemir1,

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
n, k = map(int, input().split())
kc = 240
s = ((5 + 5 * n) * n) / 2
krez = k + s
count = 0
while krez > kc:
    n -= 1
    count += n
    if n == count:
        break
if krez <= kc:
    count = n
print(count)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
22.12.2022, 21:39
medusa_l_0011, а жадный алгоритм тут работает?
На таких ограничениях, перебор за O(2n)
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
22.12.2022, 22:15
eaa, тут разве не О(1)?
1
22.12.2022, 22:36

Не по теме:

Red white socks, все может быть. С утра надо почитать условие задачи))

0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
22.12.2022, 23:15
Python
1
2
3
4
n, k = map(int, input().split())
task_time=240-k
x=(-1+(1+8*task_time/5)**.5)/2
print(min(n, int(x)))
3
 Аватар для medusa_l_0011
7 / 6 / 1
Регистрация: 08.05.2021
Сообщений: 86
23.12.2022, 15:35  [ТС]
u235, спасибо за решение. У меня просьба - объясните логику строки x=(-1+(1+8*task_time/5)**.5)/2 пожалуйста. Спасибо)))
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
23.12.2022, 15:39
Цитата Сообщение от medusa_l_0011 Посмотреть сообщение
объясните логику строки x=(-1+(1+8*task_time/5)**.5)/2
Сумма арифметической прогрессии с последующим решением квадратного уравнения
0
 Аватар для medusa_l_0011
7 / 6 / 1
Регистрация: 08.05.2021
Сообщений: 86
23.12.2022, 15:53  [ТС]
eaa, Вы знаете, я о жадных алгоритмах, пока что, имею зачаточные знания.((( К моему сожалению.

Добавлено через 6 минут
Red white socks, ну вот сумма арифметической прогрессии - s=(a1+a*n)*n / 2, а последующее решение квадратного уравнения, что берется за уравнение. извините я не могу понять((((
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
23.12.2022, 16:14
medusa_l_0011, поищите арифметическую прогрессию в своей задаче.
0
 Аватар для medusa_l_0011
7 / 6 / 1
Регистрация: 08.05.2021
Сообщений: 86
23.12.2022, 16:36  [ТС]
Red white socks, уже нашел. спасибо за подсказку:
Составляем неравенство согласно условию задачи:

5∗1+5∗2+...+5∗n≤4∗60−k

где n - это количество решенных задач. Слева можно вынести множитель 5 за скобки и получится сумма чисел натурального ряда на интервале [1, n]. Это сумма ариф. прогрессии с разностью 1, для неё известна сокращенная формула: n(n+1)/2.

Ну и выходит - 5 * n * (n + 1) / 2 <= 4 * 60 - k. дальше все становится понятным.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2022, 16:36
Помогаю со студенческими работами здесь

Подарок к Новому Году
Хочу сделать подарок себе (и не только себе) к Новому Году. Итак, рассматриваю такие варианты: Asus X550 (X550VC-XX064D) Диагональ...

Ёлочка на рабочий стол к Новому Году
Выход - правый клик:)

Халявный софт к подарок Новому году
я тут у немцев халяву нашел, по моему кому-то может пригодиться, они с начала декабря (Адвенты и до рождества) раздают по одной бесплатной...

Небольшой простенький новогодний флеш-ролик к новому году!
Нужна помощь! Завтра зачет, а у меня ничего не готово, да и я сам как-то сильно не разбираюсь в macromedia flash, плюс времени совсем не...

Из десяти подарков к Новому году наугад берут три
2. Среди десяти подарков к Новому году три подарка с красной икрой, пять — с черной и два — с икрой замор4 ской, баклажанной. Какова...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru