Олимпиадный тренинг

Задача . B. Разбор кода


Задача

Темы: реализация *1200

Маленький Виталик любит разные алгоритмы. Сегодня он изобрел новый алгоритм специально для Вас. Алгоритм Виталика работает со строкой s, состоящей из символов «x» и «y», и в процессе выполнения использует две следующие операции:

  1. Найти в строке два подряд идущих символа таких, что первый из них равен «y», а второй «x» и поменять их местами. Если имеется несколько подходящих пар символов, выбирается пара символов, которая находится ближе к началу строки.
  2. Найти в строке два подряд идущих символа таких, что первый из них равен «x», а второй «y» и удалить их из строки. Если имеется несколько подходящих пар символов, выбирается пара символов, которая находится ближе к началу строки.

Входными данными для нового алгоритма является строка s, а сам алгоритм работает следующим образом:

  1. Если к строке можно применить хотя бы одну из описанных операций, перейти к шагу 2 алгоритма. Иначе закончить выполнение алгоритма, и вывести текущую строку.
  2. Если можно применить операцию 1, то применить операцию 1. Иначе применить операцию 2. После применения операции перейти к шагу 1 алгоритма.

Теперь Виталику интересно, что будет выведено в результате работы алгоритма, если на вход алгоритма подается строка s.

Входные данные

В первой строке содержится непустая строка s.

Гарантируется, что строка состоит только из символов «x» и «y». Гарантируется, что строка состоит из не более чем 106 символов. Гарантируется, что в результате работы алгоритма, не будет получена пустая строка.

Выходные данные

В единственную строку выведите строку, которая будет выведена в результате работы алгоритма, если на вход алгоритма подается строка s.

Примечание

В первом тесте алгоритм закончится после прохождения первого пункта, так как никакую операцию применить нельзя. Таким образом строка не изменится.

Во втором тесте ход преобразований будет таким:

  1. строка «yxyxy» превращается в строку «xyyxy»;
  2. строка «xyyxy» превращается в строку «xyxyy»;
  3. строка «xyxyy» превращается в строку «xxyyy»;
  4. строка «xxyyy» превращается в строку «xyy»;
  5. строка «xyy» превращается в строку «y».

В результате будет выведена строка «y».

В третьем тесте произойдет только одно преобразование: строка «xxxxxy» превращается в строку «xxxx». Таким образом ответом будет строка «xxxx».


Примеры
Входные данныеВыходные данные
1 x
x
2 yxyxy
y
3 xxxxxy
xxxx

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя