e-olymp
favorite Нам необхідно трохи Вашої допомоги щоб сайт продовжував працювати, натисніть на банер щоб дізнатись більше.
Змагання

Week 8: December 28 - January 10. Functions. Part 1

Задача 3n + 1

Розглянемо наступний алгоритм генерації послідовності чисел:

1. input n
2. print n
3. if n = 1 then STOP
4. if n is odd then n = 3 * n + 1
5. else n = n / 2
6. GOTO 2

Наприклад, для n = 22 буде згенеровано наступну послідовність чисел:

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

Припускають (але це ще не доведено), що цей алгоритм зійдеться до n = 1 для довільного цілого n. У всякому випадку, це припущення вірне для всіх цілих n, для яких 0 < n < 1,000,000.

Довжиною циклу числа nбудемо називати кількість згенерованих чисел у послідовності включаючи 1. У наведеному вище прикладі довжна циклу числа 22 дорівнює 16.

Для двох заданних чисел i та j необхідно знайти максимальну довжину циклу для всіх чисел між i та j включно.

Вхідні дані

Кожний тест задається в окремому та містить пару цілых чисел i та j. Вхідні числа меньші 1000000 та більші 0. Вважайте, що для обчислень достатньо використовувати 32 бітний цілочисельний тип.

Вихідні дані

Для кожної пари чисел i та j виведіть числа i та j у тому ж порядку, в якому вони надійшли на вхід. Після чого виведіть максимальну довжину циклу серед усіх цілих чисел між i та j включно. Для кожного тесту три числа слід виводити в окремому рядку, розділяючи одним пропуском.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
1 10
100 200
201 210
900 1000
Вихідні дані #1
1 10 20
100 200 125
201 210 89
900 1000 174