Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Задача по инфе , написать на питоне(олимпиадная) , нужна хелпа

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
9 Авг 2019
Сообщения
4
Реакции
0
/dell
 
Последнее редактирование:
Поправь формат. Явно было 10^18, а не 1018 (тоже самое с 10^5, 10^9 и т.д.)

Идея: всегда выгодно прыгать сначала большой прыжок, потом маленький, потом большой, потом маленький и т.д.. Значит мы прыгаем сначала на Y ступенек, потом на X, потом снова на Y и т.д. пока остается не менее X + Y ступенек. На это мы потратим 2 * (N / (X + Y)) прыжков (деление целочисленное). Теперь смотрим сколько ступенек осталось. Если их осталось 0, то нам больше не надо прыгать. Если их осталось не более чем Y, то за один большой прыжок мы допрыгаем до конца, значит нам надо добавить к ответу 1. Если их осталось больше Y, то нам нужен один большой и один маленький прыжок, т.е. к ответу надо добавить 2.

Код:
Python:
Expand Collapse Copy
x = int(input())
y = int(input())
n = int(input())

ans = (n / (x + y)) * 2
if (n % (x + y)) > y:
  ans += 2
elif (n % (x + y)) > 0:
  ans += 1

print(int(ans))

Но вообще если планируешь вкатываться в спортивную прогу то переходи на плюсы
 
Последнее редактирование:
Поправь формат. Явно было 10^18, а не 1018 (тоже самое с 10^5, 10^9 и т.д.)

Идея: всегда выгодно прыгать сначала большой прыжок, потом маленький, потом большой, потом маленький и т.д.. Значит мы прыгаем сначала на Y ступенек, потом на X, потом снова на Y и т.д. пока остается не менее X + Y ступенек. На это мы потратим 2 * (N / (X + Y)) прыжков (деление целочисленное). Теперь смотрим сколько ступенек осталось. Если их осталось 0, то нам больше не надо прыгать. Если их осталось не более чем Y, то за один большой прыжок мы допрыгаем до конца, значит нам надо добавить к ответу 1. Если их осталось больше Y, то нам нужен один большой и один маленький прыжок, т.е. к ответу надо добавить 2.

Код:
Python:
Expand Collapse Copy
x = int(input())
y = int(input())
n = int(input())

ans = (n / (x + y)) * 2
if (n % (x + y)) > y:
  ans += 2
elif (n % (x + y)) > 0:
  ans += 1

print(int(ans))

Но вообще если планируешь вкатываться в спортивную прогу то переходи на плюсы
спасибо
 
Назад
Сверху Снизу