Pagini recente » Cod sursa (job #1071884) | Cod sursa (job #1719559) | Cod sursa (job #911548) | Cod sursa (job #462509) | Cod sursa (job #267944)
Cod sursa(job #267944)
#include<stdio.h>
#include<string.h>
char s[1000001];
int n,fol[30];
int este(int x)
{
for(int i=1;i<=26;i++)
if(fol[i]==(int)((n-x+1)/2)+1)
return i;
return 0;
}
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
scanf("%s",&s);
n=strlen(s);
for (int i=0;i<n;i++)
fol[s[i]-'a'+1]++;
int nrc=1,x=1;
for (int i=1;i<=26;i++)
{if(este(x))
{int v=este(x);
printf("%c",v+'a'-1);x++;
fol[v]--;
}
if(fol[i]>0)
{
printf("%c",i+'a'-1);x++;
fol[i]--;nrc=i+1;
while (fol[i]!=0)
{
while ((fol[nrc]==0)&&nrc<26)
nrc++;
printf("%c",nrc+'a'-1);
fol[nrc]--;
printf("%c",i+'a'-1);
fol[i]--;
}
}
}
return 0;
}