Вывести строку из символов В и G,
задача такая, вводятся два числа условно x и y, x =B, а y = G, строка длины x+y , надо вывести (любую) строку, в которой рядом с B стоит G и наоборот с G стоит B. Если так расставить символы не удаётся, вывести строку NO SOLUTION Например: Входные данные
5 5
Выходные данные
BGBGBGBGBG
Входные данные
5 3
Выходные данные
BGBGBBGB
Входные данные
100 1
Выходные данные
NO SOLUTION
from itertools import product
x,y = map (int,input().split())
c = x+y
if x/y > 2:
print('NO SOLUTION')
for i in product('BG',repeat = c):
s = ''.join(i)
if (s[0]!=s[1] and s[-1]!=s[-2]) and (not 'BBB' in s and not 'GGG' in s):
print(s)
break
Проблема в том, что при вводе x и y >10, программа выполняется слишком долго, максимальное значение x и y может быть равно 100 ,проблема в том, как ускорить процесс перебора в itertools для большого количества символов x и y ?
Источник: Stack Overflow на русском