Pagini recente » olivranceanu | Cod sursa (job #1825500) | Cod sursa (job #955782) | Cod sursa (job #255817) | Cod sursa (job #793151)
Cod sursa(job #793151)
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
char s[1000010];
int app[26], lg, L, R;
int main()
{
freopen("ordine.in", "r", stdin);
freopen("ordine.out", "w", stdout);
int i, j;
gets(s);
lg = strlen(s);
for(i = 0; i < lg; i++)
app[s[i] - 'a'] ++;
R = L = -1;
for(i = 0; i < lg; i++)
{
j = 0;
while(app[j] == 0 || j == L) j ++;
R = L, L = j;
for(j = L + 1; j < 26; j++)
if(app[j] == (lg - i) / 2 + 1 && j != R)
L = j;
app[L] --;
printf("%c", L + 'a');
}
return 0;
}