Pagini recente » Cod sursa (job #653453) | Cod sursa (job #2081446) | Cod sursa (job #2297843) | Cod sursa (job #2067170) | Cod sursa (job #251775)
Cod sursa(job #251775)
#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;
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--;
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;}} else
if (!a[aa]) {aa=bb;for (bb=aa+1;!a[bb];bb++);if (aa>bb){aux=aa;aa=bb;bb=aux;}};
}
for (i=1;i<=27;i++)
if (a[i])
printf("%c",i+'a'-1);
return 0;
}