Pagini recente » Cod sursa (job #1846128) | Cod sursa (job #231427) | Cod sursa (job #1733354) | Profil IulianOleniuc | Cod sursa (job #204739)
Cod sursa(job #204739)
#include <stdio.h>
#include <string.h>
int n,a[32],i,x,y,prev;
char text[1000002];
int search(int x){
for(i=1;i<=26;++i) if(a[i]==x) return i; return 0;
}
int search2(int x){
for(i=x+1;i<=26;++i) if(a[i]&&x!=i) return i; return 0;
}
int main(){
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
scanf("%s",&text);
for(i=0;i<strlen(text);++i){
++a[text[i]-'a'+1];}
n = strlen(text+1);
while(x<=n)
{
y = search((n-x+1)/2+1);
if(!y) y = search2(prev);
printf("%c",y+'a'-1);
++x;--a[y];
prev = y;
}
return 0;
}