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

Писал по поводу этой задачки, ответ который был дан оказался неверным и не работал

Задачка:

А. Чаепитие

Ограничение времени 1 секунда

Ограничение памяти 64Mb

Ввод стандартный ввод или input.txt

Вывод стандартный вывод или output.txt

На свой день рождения Вася решил пригласить всех своих друзей. Приняли приглашение и подтвердили участие в вечеринке по случаю дня рождения N человек. Вася даже придумал программу вечера для своих друзей: сначала будет чаепитие с тортом, затем игры и конкурсы. Чтобы рассадить всех своих друзей за столы для чаепития и потратить при этом меньше усилий по сервировке праздничных столов, Вася решил посчитать минимальное их количество. Оказалось, что в распоряжении Васи имеется K4 четырехместных стола и K2 — двухместных. Посчитайте, какое минимальное количество столов потребуется, чтобы рассадить всю компанию.

Формат ввода

В первой и единственной строке вводят числа N, K4, K2 — количество друзей Васи, подтвердивших участие в вечеринке, количество четырехместных столов и количество двухместных столов, которые есть в распоряжении Васи соответственно (1 ≤ N ≤ 1018, 0 ≤ K2, K4 ≤ 1018).

Формат вывода

Выведите одно число — минимальное количество столов, за которые можно рассадить всех друзей. Если же разместить всех друзей не получится, выведите -1.

Пример

Ввод
10 5 3
Вывод
3

Ответы

Автор ответа: annazaezc
0

Ответ:

Для решения этой задачи нужно сначала понять, какое максимальное количество людей можно рассадить за один стол. Четырехместный стол может вместить 4 человека, а двухместный - 2 человека. Таким образом, если у нас есть только четырехместные столы, то мы можем рассадить только кратное 4 количество людей. Если у нас есть только двухместные столы, то мы можем рассадить только кратное 2 количество людей. Если же у нас есть и четырехместные, и двухместные столы, то мы можем рассадить любое количество людей, кратное 2, 4 или 6.

Теперь рассмотрим несколько случаев:

1. Если количество друзей Васи кратно 4, то мы можем использовать только четырехместные столы. В этом случае минимальное количество столов будет равно N / 4. Если при этом количество четырехместных столов K4 меньше, чем N / 4, то мы не сможем рассадить всех друзей и ответ будет -1.

2. Если количество друзей Васи кратно 2, но не кратно 4, то мы можем использовать только двухместные столы. В этом случае минимальное количество столов будет равно N / 2. Если при этом количество двухместных столов K2 меньше, чем N / 2, то мы не сможем рассадить всех друзей и ответ будет -1.

3. Если количество друзей Васи кратно 6, то мы можем использовать как четырехместные, так и двухместные столы. В этом случае мы можем сначала рассадить всех друзей за четырехместные столы, а затем использовать двухместные столы для тех, кто остался. Минимальное количество столов будет равно (2 * K4 + K2 + 3) / 3, где 2 * K4 - количество мест за четырехместными столами, K2 - количество мест за двухместными столами, а 3 - количество мест за одним столом.

4. Если количество друзей Васи не кратно 2, 4 или 6, то мы не сможем рассадить всех друзей и ответ будет -1.

Вот код на Python, который реализует эту логику:

```python

n, k4, k2 = map(int, input().split())

if n % 4 == 0:

   # можем использовать только четырехместные столы

   if k4 >= n // 4:

       print(n // 4)

   else:

       print(-1)

elif n % 2 == 0:

   # можем использовать только двухместные столы

   if k2 >= n // 2:

       print(n // 2)

   else:

       print(-1)

elif n % 6 == 0:

   # можем использовать и четырехместные, и двухместные столы

   m = 2 * k4 + k2

   if m >= n:

       print((2 * k4 + k2 + 2) // 3)

   else:

       print(-1)

else:

   # не можем рассадить всех друзей

   print(-1)

```

Надеюсь, это поможет вам решить задачу!

Объяснение:

Похожие вопросы
Предмет: Английский язык, автор: dahakrivenkomad