Cod sursa(job #141576)
#include<stdio.h>
//using namespace std;
char ch, *s, ultim;
long i, v[26], n=0, nr, j;
char *c="abcdefghijklmnopqrstuvwxyz";
void citire()
{
freopen("ordine.in","r",stdin);
while(scanf("%c",&ch)==1) v[ch-97]++, n++;
fclose(stdin);
}
void rezolv_afis()
{
freopen("ordine.out","w",stdout);
for(i=1; i<=n; i++) {
nr=(n-i+1)/2+1;
for(j=0; j<26 && v[j]!=nr; j++);
if(c[j]==ultim && j<26){ j++; for(; j<26 && v[j]!=nr; j++);}
if(j<26){
printf("%c",c[j]);
v[j]--;
ultim=c[j];
}
else if(j==26) {
for(j=0; j<26 && !v[j];j++);
if(c[j]==ultim && j<26){ j++; for(; j<26 && v[j]!=0; j++); j--;}
printf("%c",c[j]);
v[j]--;
ultim=c[j];
}
}
printf("\n");
fclose(stdout);
}
int main(){
citire();
rezolv_afis();
return 0;
}