
Python
Товарищи. помогите пожалуйста с задачей по информатике

Здравствуйте, Руслан.
# Ввожу строку в программу
s = input()
# Преобразую её в список строк
s = s.split()
# Преобразую список строк в список чисел
s = list(map(int, s))
# Проверяю список "s" - если в нём есть повторяющиеся числа, то выдаю False
# Иначе - выдаю True
def checking(s):
for i in range(len(s)-1):
for k in range(i+1, len(s)):
if s[i] == s[k]:
return False
return True
# По ряду "row" в списке строк "s" генерирую новые строки. Если в ряде есть
# повторяющиеся числа, то беру одно из них и раздваиваю на 2 числа. Причём,
# перебираю все варианты раздвоения.
def generate_variants(s, row):
# Записываю в "r" ряд, с которым хочу работать
r = s[row]
# В этих двух циклах ищу повторяющиеся числа в ряде "r"
for i in range(len(r)-1):
for k in range(i+1, len(r)):
if r[i] == r[k]:
# Нашёл повторяющиеся числа.
# В цикле раздваиваю r[i] на 2 числа. Причём, делаю это для
# всех возможных вариантов раздваивания
for n in range(1, r[i] // 2 + 1):
# Копирую ряд "r" в lst
lst = r.copy()
# Изменяю текущее число и добавляю новое число к ряду
lst[i] = n
lst.append(r[i] - n)
# Добавляю ряд в список строк
s.append(lst)
# В "variants" я записываю все возможные варианты разложения конфет на кучки
variants = [s]
# current_row - это номер текущего варианта разложения конфет на кучки
current_row = 0
# Проверяю, что в текущем разложении все кучки разные
successfully = checking(variants[current_row])
# Запускаю цикл, которые работает, пока есть одинаковые кучки
while not successfully:
# Для текущего ряда генерирую новые ряды - варианты разложения на кучки
generate_variants(variants, current_row)
# Перехожу к следующему ряду
current_row += 1
# Если проанализировал все варианты разложения конфет на кучки, то
# выхожу из цикла
if current_row == len(variants):
break
# Проверяю, что текущий вариант разложения конфет мне подходит, то есть,
# что в нём все кучки разные
successfully = checking(variants[current_row])
# В зависимости от результата проверки вывожу ответ на экран
if successfully:
print("YES")
else:
print("NO")
# Прочитать количество конфет в куче
kucha1, kucha2, kucha3, kucha4 = map(int, input().split())
# Проверяем, есть ли во всех кучах разное количество конфет
if kucha1 != kucha2 and kucha1 != kucha3 and kucha1 != kucha4 and kucha2 != kucha3 and kucha2 != kucha4 and kucha3 != kucha4:
print("YES")
else:
print("NO")
Похожие вопросы
- Добрый вечер, помогите, пожалуйста, решить задачу по информатике
- Помогите, пожалуйста, с задачей по информатике в питоне.
- Помогите, пожалуйста, решить задачу Python
- Помогите пожалуйста с задачей на Python.
- Помогите пожалуйста с задачей по python!
- Помогите, пожалуйста, с задачей на питоне!
- Помогите пожалуйста с задачей на Python.
- Помогите пожалуйста решить задачу "Ход конём" в Python.
- Помогите пожалуйста с задачей на python!
- Помогите пожалуйста решить задачу по программированию наpython.