Pagini recente » Cod sursa (job #330437) | Cod sursa (job #182018) | Cod sursa (job #2793244) | Cod sursa (job #1584713) | Cod sursa (job #331184)
Cod sursa(job #331184)
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#define nx 1000005
using namespace std;
char a[nx];
int b[50],w,C;
int check (int i,int x)
{
for (int j=1;j<=26;++j)
{
if (b[j] && !w && j!=C) w=j;
if (b[j]>(x-i)/2+(x-i)%2 && b[j])
return j;
}
return 0;
}
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
scanf("%s",&a);int i,x=strlen(a);
for ( i=0;i<x;++i)
b[a[i]-'a'+1]++;
int p;char c;
for (i=1;i<=x;++i)
{
w=0;
p=check(i,x);
if (!p)
{
c=w+'a'-1;b[w]--;C=c-'a'+1;
printf("%c",c);
}
else
{
c=p+'a'-1;b[p]--;C=c-'a'+1;
printf("%c",c);
}
}
printf("\n");
return 0;
}