Top.Mail.Ru
Ответы

Питон задача 7 класс

В онлайн компиляторе Python решить задачу: Х мальчиков и У девочек пошли в кинотеатр и купили билеты на подряд идущие места в одном ряду. Написать программу, которая выдаст, как нужно сесть мальчикам и девочкам, чтобы рядом с каждым мальчиком сидела хотя бы одна девочка, а рядом с каждой девочкой - хотя бы один мальчик. На вход подаются два числа - количество мальчиков Х и кол-во девочек Y. В ответе выведите какую-нибудь строку, в которой будет ровно х символов "В" (обозначающих мальчиков) и Y символов "G" (обозначающих девочек), удовлетворяющую условию задачи. Пробелы между символами выводить не нужно. Если рассадить мальчиков и девочек согласно условию задачи невозможно, выведите строку "Нет решения".

По дате
По рейтингу
Аватар пользователя
Новичок

Было уже и прекрасно ищется поиском по сайту:
https://otvet.mail.ru/question/224080923

И там самый интересный вариант решения не в самом ответе, а в комментариях:

12345
 x, y = int(input()), int(input())
if min(x, y) * 2 < max(x, y):
  print('Нет решения')
else:
  print(('BG' * min(x, y)).replace('BG'[x > y], 'GB', abs(x - y))) 
Аватар пользователя
Гуру
123456789101112131415
 x = int(input()) 
y = int(input()) 
 
if x < y: 
    x, y = y, x 
 
if y * 2 < x: 
    print("Нет решения") 
else: 
    while y < x: 
        print("BG"*2, end="") 
        x -= 2 
        y -= 1 
    print("GB"*y, end="") 
 
Аватар пользователя
Мыслитель

def main():
x, y = map(int, input("Введите количество мальчиков (x) и девочек (y):\n").split())
if (x + y) % 2 == 0 and x > y:
print("Нет решения")
else:
diff = abs(x - y)
if diff == y:
print("GB" * (y - 1) + "G")
elif diff == x:
print("BG" * (x - 1) + "B")
else:
if x > y:
print("G" * y + "BG" * ((x - y) // 2) + "GB" * ((x - y) % 2))
else:
print("B" * x + "GB" * ((y - x) // 2) + "BG" * ((y - x) % 2))


if __name__ == "__main__":
main()


Ошибок нет, пиши

Аватар пользователя
Знаток

P=15