Предмет: Информатика, автор: 55555yud

Сдать решение задачи 2-Ну все, я попрыгал!
Полный балл: 100
Ограничение времени: 1 с
Ограничение памяти: 512M
Ограничение размера стека: 64M
Задача 2: Ну все, я попрыгал!
Персонаж известной компьютерной игры Марио постарел и почти перестал прыгать. Но совсем недавно он увидел спуск из N ступенек, и его накрыло ностальгией. Марио встал на самую верхнюю ступеньку и решил преодолеть этот спуск при помощи прыжков.

Когда-то Марио знал тысячи различных видов прыжков, но теперь он смог вспомнить только два: короткие и длинные. Короткий прыжок позволяет спуститься на произвольное число ступенек, не большее X, а длинный — на произвольное число, не большее Y (X < Y). Но в силу возраста Марио не может делать два длинных прыжка подряд и вынужден между ними совершать хотя бы один короткий. При этом Марио не хочет слишком уж сильно ухудшить свои прошлые результаты и поэтому постарается обойтись как можно меньшим числом прыжков.

Помогите Марио посчитать минимальное количество прыжков, требующееся для преодоления всех N ступенек.

Входные данные
В первой строке входных данных записано целое число X — максимальная длина короткого прыжка.

Во второй строке записано целое число Y (1 ≤ X < Y < 1018) — максимальная длина длинного прыжка.

В третьей строке записано целое число N (1 < N < 1018) — количество ступенек в спуске.

Выходные данные
В единственной строке выведите целое число — минимальное число прыжков, необходимое Марио для спуска.

Система оценки
Решения, правильно работающие только для случаев, когда X, Y и N не превосходят 105, будут оцениваться в 35 баллов.

Решения, правильно работающие только для случаев, когда X, Y и N не превосходят 109, будут оцениваться в 50 баллов.

Примечание
Обратите внимание, что входные данные, а также ответ могут быть достаточно большими, поэтому следует использовать 64-битный тип данных, например long long в C/C++, long в Java и C#, int64 в Pascal.


kh0ld: из всей олимпиады я только понял, что надо писать программу для решения задачи...как это делать- я не знаю
ivannetrebenko231: как решать её
anoNim13414: Это же c++?
pIatina: какой это язык
anoNim13414: там написано

Ответы

Автор ответа: vadimstrebulaev
6

Ответ:

#include <iostream>

using namespace std;

int main()

{

 long long int x, y, n, ans;

 cin >> x >> y >> n;

 if(n%(x+y)==0)

 {

     ans = n/(x+y)*2;

 }

 else if(n%(x+y)>y)

 {

     ans = n/(x+y)*2+2;

 }

 else

 {

     ans = n/(x+y)*2+1;

   }

   

   cout << ans;

   

 return 0;

}

Объяснение:

для g++(с++)

Автор ответа: Fedy16
8

Ответ:

X = int(input())

Y = int(input())

N = int(input())

if (N % (X + Y)) == 0:

   print(int((N / (X + Y)) * 2))

else:

   if (N % (X + Y)) <= Y:

       print(int(((N // (X + Y)) * 2) + 1))

   else:

       print(int(((N // (X + Y)) * 2) + 2))

=============================

На Python

Похожие вопросы
Предмет: Химия, автор: mardy