Cod sursa(job #117614)
#include <stdio.h>
#include <string.h>
int i,j,n;
char c[100001],k;
int a[27];
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
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]++;
}
k='*';
for (i=1; i<=n; i++)
{
int na=0,gas=0;
for (j=1; j<=26; j++)
if (a[j]==(n-i+1)/2+1 && char(j+96)!=k)
{
printf("%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)
{
printf("%c",char(j+96));
k=char(j+96);
gas=1;
a[j]--;
break;
}
}
return 0;
}