Cod sursa(job #163465)
#include <stdio.h>
#define N 1000010
char sol[N],e;
int f[26],l;
void scan() {
freopen("ordine.in", "r",stdin);
freopen("ordine.out", "w",stdout);
for(l=0;;++l,e='\0')
{
scanf("%c", &e);
if(e=='\0')
break;
++f[e];
}
sol[0]='X';
}
int gaseste_char(int i) {
int min,g=0;
for(int j='a';j<='z';++j) {
if(f[j]!=0 && !g && j!=sol[i-1])
{ g=1; min=j; }
if(f[j]>(l-i+1)/2)
return j;
}
return min;
}
void solve() {
int x;
for(int i=1;i<=l;++i) {
x=gaseste_char(i);
--f[x];
sol[i]=x;
}
}
void print() {
for(int i=1;i<=l;++i)
printf("%c", sol[i]);
}
int main() {
scan();
solve();
print();
return 0;
}