`
Задача Channel. Пропускна спроможність каналів зв’язку компанії «FreeNet» вимірюється цілим додатнім числом і зараз складає a одиниць. З метою покращення інтернету в школах області менеджмент компанії вирішив збільшити спроможність до значення b. Потрібні нові канали зв’язку. Технічно можливо прокладати канали зв’язку двох типів: L та LL. Канал типу L збільшує пропускну спроможність на 1, а канал типу LL – на 2. Звичайно, є бажання прокласти найменшу кількість каналів. Канали потрібно вводити в дію по одному, одразу після облаштування. Але, якщо поточна пропускна спроможність стає кратною цілому числу c, все обладнання «зависає», школи взагалі лишаються без Інтернету. Потрібно написати програму, яка по заданим значенням a,b,c порахує, яку мінімальну кількість каналів потрібно збудувати.
Технічні умови. Програма Channel читає з пристрою стандартного введення 3 числа a b c через пропуск. (1 ⩽ a < b ⩽ 109, 2 ⩽ c ⩽ 109, a не кратне c, b не кратне c). Програма виводить на пристрій стандартного виведення єдине число - шукану величину.
Приклади
Введення Виведення
2 7 3 3
4 10 3 4
Коментар до прикладів. В першому прикладі можливо діяти так: будувати лінії LL, L, LL. Пропускна спроможність міняється так: 2 → 4 → 5 → 7. В другому прикладі можна діяти так: будувати канали L, LL, L, LL. Пропускна спроможність каналів міняється таким чином: 4 → 5 → 7 → 8 → 10.
© LIKT 1998-2024