Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <algorithm>using namespace std;char str[100010];char ans[100010];int cnt[128];int cnt2[128];int main(){scanf("%s", str);char *p = str;while (*p)cnt[*p]++, cnt2[*p++]++;int res = 0;for (int i = 'a'; i <= 'z'; i++)if (cnt[i])++res;int cur = 0;int last = -1;int len = 0;while (res > 1){while (cnt[cur + 'a'] == 0 || cur == last)cur = (cur + 1) % 26;cnt[cur + 'a']--;if (cnt[cur + 'a'] == 0)res--;ans[len++] = cur + 'a';last = cur;