Pagini recente » Cod sursa (job #426390) | Cod sursa (job #1133240) | Cod sursa (job #2974372) | Cod sursa (job #1906670) | Cod sursa (job #1724438)
#include <cstdio>
#include<string.h>
#include<deque>
#define MAX 1000000
#define LIT 26
using namespace std;
char s[MAX+1], sol[MAX+2];
int v[LIT];
deque<int>dq;
int main()
{
freopen("ordine.in", "r", stdin);
freopen("ordine.out", "w", stdout);
int i, n, f;
gets(s);
i=0;
while(s[i]>='a' && s[i]<='z')
v[s[i++]-'a']++;
n=i;
for(int i=1;i<=n;++i)
{
f=0;
for(int j=0;j<LIT && !f;++j)
if(v[j] && v[j]>=(n-i+1)/2+1 && j+'a'!=sol[i-1])
sol[i]=j+'a', v[j]--, f=1;
if(!f)
for(int j=0;j<LIT && !f;++j)
if(v[j] && sol[i-1]!=j+'a')
sol[i]=j+'a', v[j]--, f=1;
}
sol[n+1]=0;
puts(sol+1);
return 0;
}