CF255B Code Parsing

题目描述

小 Vitaly 喜欢各种各样的算法。今天他刚刚为你发明了一种新算法。Vitaly 的算法作用于一个只包含字符 $x$ 和 $y$ 的字符串 $s$,它运行中依次执行如下两种操作: 1. 在字符串中找到两个相邻的字符,其中第一个等于 $y$,第二个等于 $x$,并交换它们的位置。如果有多个符合条件的字符对,则选择最靠近字符串开头的那一对。 2. 在字符串中找到两个相邻的字符,其中第一个等于 $x$,第二个等于 $y$,并将它们从字符串中删除。如果有多个符合条件的字符对,则选择最靠近字符串开头的那一对。 新算法的输入为字符串 $s$,其工作方式如下: 1. 如果可以对字符串施加上述任意一种操作,转到算法的第 2 步。否则,停止算法执行并输出当前字符串。 2. 如果可以执行操作 1,则执行操作 1。否则,执行操作 2。执行操作后,回到算法的第 1 步。 现在 Vitaly 想知道,如果输入字符串 $s$,该算法最终会输出什么字符串。

输入格式

第一行输入一个非空字符串 $s$。 保证字符串仅由字符 $x$ 和 $y$ 组成,且字符串长度不超过 $10^{6}$。保证执行算法后输出的字符串不会为空。

输出格式

仅输出一行,即算法最终输出的字符串。

说明/提示

在第一个测试用例中,算法在第一步后就会结束,因为无法应用任何操作。因此,字符串不会改变。 在第二个测试用例中,变换过程如下: 1. 字符串 "yxyxy" 变成 "xyyxy"; 2. 字符串 "xyyxy" 变成 "xyxyy"; 3. 字符串 "xyxyy" 变成 "xxyyy"; 4. 字符串 "xxyyy" 变成 "xyy"; 5. 字符串 "xyy" 变成 "y"。 最终,我们得到字符串 "y"。 在第三个测试用例中,只进行一次操作:字符串 "xxxxxy" 变成 "xxxx"。因此,答案是字符串 "xxxx"。 由 ChatGPT 5 翻译