Для решения задачи сначала определим, какие перчатки на руках каждого ученика:
- A: обе белые (1, 1)
- B: белая на правой, черная на левой (1, 0)
- C: черная на правой, белая на левой (0, 1)
- D: обе черные (0, 0)
Теперь проанализируем, какие ученики могут быть соединены по цвету перчаток:
- Ученики A могут соединяться только с другими учениками, имеющими белые перчатки на обеих руках, т.е. с учащимися B и C, которые имеют по одной белой перчатке.
- Ученики B могут соединяться с учащимися, у кого на правой руке белая и на левой руке черная (т.е. только A) и с учащимися, у кого на левой руке белая и на правой черная (т.е. C).
- Ученики C смогут соединяться с B (по белой) и D (по черной).
- Ученики D могут соединяться только с другими учащимися, у кого обе черные.
Чтобы ограничить соединения по цвету, мы будем использовать следующую логику:
- Сначала соединяем учеников с одинаковыми перчатками:
- Сколько учеников с белыми на руках (A + B, соединяясь между собой).
- Сколько учеников с черными на руках (C + D, соединяясь между собой).
Таким образом максимальная длина цепочки будет равна:
- Все ученики A могут соединиться, потому что у них обе белые. Это A.
- Ученики B могут соединиться с учениками C, потому что у них одна белая.
- Ученики D могут соединиться с учениками C, потому что у них обе черные.
Итак, формула для длины максимальной цепочки:
def max_chain_length(A, B, C, D):
return min(A + B + C, A + D + B + C)
# Чтение входных данных
A = int(input())
B = int(input())
C = int(input())
D = int(input())
# Вывод длины максимальной цепочки
print(max_chain_length(A, B, C, D))
В этом коде реализована логика соединений и выводится максимальная длина цепочки.
Для проверки по вашим примерам:
- Ввод
1 1 1 1→ Вывод4 - Ввод
1 0 1 0→ Вывод3
Таким образом, мы можем определить длину самой длинной цепочки в зависимости от входных значений.
