\(X\) мальчиков и \(Y\) девочек пошли в кинотеатр и купили билеты на подряд идущие места в одном ряду. Напишите программу, которая выдаст, как нужно сесть мальчикам и девочкам, чтобы рядом с каждым мальчиком сидела хотя бы одна девочка, а рядом с каждой девочкой — хотя бы один мальчик.
Вводятся два числа — \(X\) и \(Y\) (оба числа натуральные, не превосходящие 100).
Выведите какую-нибудь строку, в которой будет ровно \(X\) символов B (обозначающих мальчиков) и \(Y\) символов \(G\) (обозначающих девочек), удовлетворяющую условию задачи. Пробелы между символами выводить не нужно. Если рассадить мальчиков и девочек согласно условию задачи невозможно, выведите строку NO SOLUTION.
5 5
BGBGBGBGBG
5 3
BGBGBBGB
100 1
NO SOLUTION
Пете на день рождения подарили новую головоломку. Головоломка представляет собой цилиндр, состоящий из n круглых слоев, нанизанных на одну вертикальную ось. Каждый слой можно вращать независимо от других. Каждый слой разбит на n квадратиков, каждый из которых может быть либо черным, либо белым. В устойчивом состоянии квадратики соседних слоев находятся в точности друг под другом.
В первой строке вводится число \(n\) - количество слоев в головоломке и количество квадратиков в одном слое (1 <= \(n\) <= 200). Следующие \(n\) строк содержат по \(n\) символов, каждый из которых равен 0 или 1 - развертку головоломки.
Если решить головоломку можно, в первой строке выведите слово "Yes". В этом случае следующие \(n\) строк должны содержать произвольную развертку решенной головоломки.
Если решить головоломку нельзя, выведите в первой и единственной строке выходных данных слово "No".
6 000110 001110 101000 001000 011111 011110
Yes 000110 011100 101000 001000 011111 011110
Даны \(N\) целых чисел \(X_1\), \(X_2\), ..., \(X_N\). Требуется вычеркнуть из них минимальное количество чисел так, чтобы оставшиеся шли в порядке возрастания.
В первой строке находится число \(N\). В следующей строке - \(N\) чисел через пробел. 1 <= \(N\) <= 10 000, 1 <= \(X_i\) <= 60 000.
В первой строке выводится количество невычеркнутых чисел, во второй - сами невычеркнутые числа через пробел в исходном порядке. Если вариантов несколько, вывести любой.
5 1 3 5 2 4
3 1 3 5
Анаграммер — специальное устройство для получения из слова его анаграмм (то есть слов, записанных теми же буквами, но в другом порядке). Это устройство умеет выполнять 2 операции:
Стек — это хранилище данных, которое работает по принципу "первый пришел — последний ушел". Стек можно представить себе в виде пирамидки. Когда мы добавляем букву в стек, это соответствует тому, что на стержень пирамидки сверху мы надеваем кольцо, на котором написана соответствующая буква. Когда берем букву из стека, то это соответствует тому, что мы снимаем со стержня верхнее кольцо, и смотрим, какая буква на нем написана.
Например, слово TROT в слово TORT может быть преобразовано анаграммером двумя различными последовательностями операций: 11112222 или 12112212.
Напишите программу, которая по двум заданным словам вычисляет количество различных последовательностей операций анаграммера, которые преобразуют первое из этих слов во второе, а также находит сами эти последовательности.
Первая строка входного файла содержит исходное слово, а вторая — слово, которое необходимо получить. Слова состоят только из заглавных латинских букв и имеют длину не более 50 символов. Оба слова имеют одинаковую длину. В этих строках не содержится пробелов.
В первой строке выходного файла должно содержаться количество последовательностей операций анаграммера, с помощью которых можно преобразовать первое слово во второе.
Если это количество не превышает 1000, то в последующих строках должны содержаться сами последовательности. Каждая последовательность должна быть выведена на отдельной строке, и состоять из цифр 1 и 2 (указывающих порядок выполнения операций), выведенных без пробелов.
TORT TROT
2 11112222 12112212
MOSCOW OMCOWS
1 112211212122
Дано выражение, содержащее натуральные числа и знаки сложения (+) и умножения (*).
Расставьте скобки так, чтобы значение этого выражения была наибольшим возможным.
Гарантируется, что максимальное значение выражения не превосходит 10000.
Входные данные
Вводится одна строка длиной не более 100 символов.
Выходные данные
Выведите ту же строку с расставлеными скобками.
Примеры
Входные данные | Выходные данные |
2+2*3*4 | (2+2)*3*4 |
2+2*3*4 | (2+2)*(3*4) |
2+2*3*4 | ((2+2)*3)*4 |
1+1 | 1+1 |
1+1 | (1)+1 |