Pagini recente » Cod sursa (job #233138) | Cod sursa (job #697763) | Cod sursa (job #2903913) | Cod sursa (job #388990) | Cod sursa (job #251780)
Cod sursa(job #251780)
#include <stdio.h>
#include <string.h>
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
char c;
long a[28]={0};
while (scanf("%c",&c)!=EOF)
a[c-'a'+1]++;
int aa=1,bb=2,i;
for (i=1;i<=27;i++) if (a[i]) {aa=i;break;}
for (i=aa+1;i<=27;i++) if (a[i]){bb=i;break;}
int aux,ultima=0;
while (a[aa] && aa <=27 && bb<=27)
{
for (i=1;i<=(a[aa]<a[bb]?a[aa]:a[bb]);i++)
printf("%c%c",aa+'a'-1,bb+'a'-1);
i--;
ultima=bb;
a[aa]-=i;a[bb]-=i;
if (!a[bb]) {for (;(a[bb]<=0) || (aa==bb);bb++);if (aa>bb){aux=aa;aa=bb;bb=aux;}}
if (!a[aa]) {aa=bb;for (bb=aa+1;!a[bb];bb++);if (aa>bb){aux=aa;aa=bb;bb=aux;}};
if (aa==ultima)
{
aux=aa;aa=bb;bb=aux;
}
}
for (i=1;i<=27;i++)
if (a[i])
printf("%c",i+'a'-1);
return 0;
}