Pagini recente » Cod sursa (job #586648) | Cod sursa (job #253793) | Cod sursa (job #1922959) | Cod sursa (job #391986) | Cod sursa (job #229763)
Cod sursa(job #229763)
#include <stdio.h>
#include <string.h>
#define dim 1000000
char str[dim];
long nr[30]={0}, n;
int main()
{
long i, x, j, ok;
freopen("ordine.in", "r", stdin);
freopen("ordine.out", "w", stdout);
gets(str);
n=strlen(str);
for (i=0; i<n; i++) nr[str[i]-'a']++;
for (i=0; i<n; i++)
{
ok=0;
x=-1;
for (j=0; j<26 && !ok; j++)
if (nr[j])
{
if ((n-i+1)%2==0)
if (nr[j]==(n-i-1)/2+1)
{
ok=1;
x=j;
}
if (x==-1)
if (str[i-1]!=j+'a') x=j;
}
str[i]='a'+x;
nr[x]--;
}
puts(str);
return 0;
}