Задача по программированию. (python, java, pascal)

B. Соки Ограничение времени: 0.25 секунды Ограничение памяти: 64 МБ Настя устраивает вечеринку, на которую она купила A стаканов ананасового сока, B стаканов апельсинового сока и C стаканов яблочного сока. К ней на вечеринку пришло N одиноких гостей и M пар. Чтобы одинокий гость был доволен, ему нужно дать один стакан любого сока. Чтобы гость, пришедший с парой, был доволен, ему и его паре надо дать по одному стакану одного и того же сока. Найдите, какое наибольшее число гостей Настя может сделать довольными. Исходные данные В пяти строках последовательно вводятся целые числа A, B, C, N, M — количество стаканов каждого из трех соков, число одиноких гостей и число пар (0 ≤ A, B, C, N, M ≤ 5 · 108). Результат Выведите единственное целое число — ответ на задачу.

Пример: исходные данные результат 1 3 0 1 2

Результат: 3

Замечания В примере из условия Настя может сделать счастливыми только одну пару и одного одинокого гостя. Для этого она должна дать каждому человеку из пары по стакану апельсинового сока и один стакан апельсинового (или ананасового) сока дать одинокому гостю. Система оценки и описание подзадач Тесты в этой задаче разбиты на 3 группы. Баллы за группу начисляются при прохождении всех тестов этой и всех необходимых групп.

Пример из условия не оценивается

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Дмитрий
A = int(input())  # стаканов ананасового сока
B = int(input())  # стаканов апельсинового сока
C = int(input())  # стаканов яблочного сока

N = int(input())  # одиноких гостей
M = int(input())  # пар

S = 0  # кол-во довольных людей (человек)

# пар
while A >= 2 and M >= 1:
    A -= 2
    S += 2
    M -= 1

while B >= 2 and M >= 1:
    B -= 2
    S += 2
    M -= 1

while C >= 2 and M >= 1:
    C -= 2
    S += 2
    M -= 1

# одиноких
while A >= 1 and N >= 1:
    A -= 1
    S += 1
    N -= 1

while B >= 1 and N >= 1:
    B -= 1
    S += 1
    N -= 1

while C >= 1 and N >= 1:
    C -= 1
    S += 1
    N -= 1

print(S)

Может не пройти по времени

→ Ссылка