Pagini recente » Cod sursa (job #1117544) | Istoria paginii runda/cex_ph_2 | Cod sursa (job #1448047) | Cod sursa (job #1783374) | Cod sursa (job #204736)
Cod sursa(job #204736)
#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=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;
}