Якщо n = 0, то відповідь .
Якщо кількість тостів не перевищує місткість сковороди k~(n \le k), то на обсмаження всіх тостів з двох сторін знадобиться хвилини.
Оскільки кожен тост потрібно обсмажити з обох сторін, всього потрібно обсмажувань. Кожне обсмаження (одночасне розміщення на сковороді до тостів) займає хвилини.
Отже, якщо n > k, то мінімальний час, необхідний для обсмаження всіх тостів, дорівнює 2 \cdot \lceil 2n / k \rceil хвилин.
Приклад
Нехай маємо n = 3 тости, і сковорода вміщує одночасно k = 2 тости. Позначимо сторони тостів як 1a, 1b, 2a, 2b, 3a, 3b.
Тоді всі сторін можна обсмажити за хвилин наступним чином:
Перше обсмаження: і 2a - 2 хвилини;
Друге обсмаження: і 3a - 2 хвилини;
Третє обсмаження: і 3b - 2 хвилини;
Разом: обсмаження по хвилини, тобто хвилин.
Реалізація алгоритму
Читаємо вхідні дані.
scanf("%d %d", &n, &k);Якщо n = 0, то відповідь .
if (!n) res = 0; elseЯкщо кількість тостів не перевищує місткість сковороди, то на їх обсмаження знадобиться хвилини.
if (n <= k) res = 4; else
{Кожен тост необхідно обсмажити з двох сторін, тобто всього потрібно обсмажити сторін. При цьому одне обсмаження (незалежно від кількості тостів на сковороді, що не перевищує її місткість) займає хвилини.
res = 2 * n / k;
if (2 * n % k) res++;
res *= 2;
}Виводимо відповідь.
printf("%d\n", res);Java реалізація
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int k = con.nextInt();
int res;
if (n == 0) res = 0; else
if (n <= k) res = 4; else
{
res = 2 * n / k;
if (2 * n % k > 0) res++;
res *= 2;
}
System.out.println(res);
con.close();
}
}