Cod sursa(job #117616)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int i,j,n;
char k;
int a[27];
FILE *f1,*f2;
int main()
{
f1=fopen("ordine.in","r");
f2=fopen("ordine.out","w");
/*
scanf("%s",&c);
n=strlen(c);
for (i=n; i>=1; i--)
{
scanf("%d",&c[i]);
c[i]=c[i-1];
a[c[i]-96]++;
}
*/
n=0;
while (!feof(f1))
{
fscanf(f1,"%c",&k);
if (k=='\n')break;
a[k-96]++;
n++;
}
k='*';
for (i=1; i<=n; i++)
{
int gas=0;
for (j=1; j<=26; j++)
if (a[j]==(n-i+1)/2+1 && char(j+96)!=k)
{
fprintf(f2,"%c",char(j+96));
k=char(j+96);
gas=1;
a[j]--;
break;
}
if (!gas)
for (j=1; j<=26; j++)
if (a[j]!=0 && char(j+96)!=k)
{
fprintf(f2,"%c",char(j+96));
k=char(j+96);
gas=1;
a[j]--;
break;
}
}
return 0;
}