Pagini recente » Cod sursa (job #1190175) | Cod sursa (job #2565960) | Cod sursa (job #1140922) | Cod sursa (job #2987887) | Cod sursa (job #968642)
Cod sursa(job #968642)
#include <cstdio>
#include <cstring>
char a[1000003];
int n;
int cnt[27];
int main() {
freopen ("ordine.in", "r", stdin);
freopen ("ordine.out", "w", stdout);
scanf ("%s", &a);
n = strlen(a);
int i, j;
for (i = 0; i < n; ++i)
cnt[ a[i] - 'a' ]++;
a[0] = 0;
for (i = 1; i <= n; ++i) {
for (j = 0; j < 26; ++j)
if (cnt[j] == (n - i + 1) / 2 + 1 && (j + 'a' != a[i - 1]))
break;
if (j < 26 && cnt[j] == (n - i + 1) / 2 + 1) {
cnt[j]--;
a[i] = j + 'a';
}
else {
for (j = 0; j < 26; ++j)
if (cnt[j] && (j + 'a') != a[i - 1])
break;
if (j < 26 && cnt[j])
cnt[j]--,
a[i] = j + 'a';
}
}
printf ("%s\n", a + 1);
}