Pagini recente » Cod sursa (job #826118) | Cod sursa (job #600833) | Cod sursa (job #222977) | Cod sursa (job #1193026) | Cod sursa (job #583688)
Cod sursa(job #583688)
#include <cstdio>
#include <string>
using namespace std;
#define nmax 1000001
long n;
char s[nmax];
long q[26]; // quantity
void citire()
{
freopen("ordine.in","r",stdin);
scanf("%s", &s); n = strlen(s);
}
void init()
{
for(long i=0; i<n; i++)
q[int(s[i])-'a']++;
}
void solve()
{
int ant=-1; bool ok;
while(n)
{
ok = true;
for(long i=0; i<26; i++)
if(q[i] > (n-q[i]))
{
printf("%c", i+'a');
q[i]--; n--; ant=i; ok = false;
break;
}
if(ok)
for(long i=0; i<26; i++)
if(q[i] && i!=ant)
{
printf("%c", i+'a');
q[i]--; n--; ant=i; break;
}
}
}
int main()
{
freopen("ordine.out","w",stdout);
citire();
init();
solve();
return 0;
}