Cod sursa(job #114266)
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#define LMAX 60000
/// -97
long v[25],n,i,poz=-1; char sir[LMAX];
int cauta()
{int i;
for(i=0;i<poz;i++)
if(v[i]>0) {v[i]--; return poz=i;}
for(i=poz+1;i<=25;i++)
if(v[i]>0) {v[i]--; return poz=i;}
}
main()
{freopen("ordine.in","r",stdin);
//freopen("ordine.out","w",stdout);
//while(!feof(stdin)) {s=fgetc(stdin); v[s-97]++; n++;} n--;
gets(sir);
for(i=0;i<strlen(sir);i++) v[sir[i]-97]++;
for(i=1;i<=strlen(sir);i++)
printf("%c",cauta()+97); cout<<endl;
}