Pagini recente » Cod sursa (job #235893) | Cod sursa (job #622733) | Cod sursa (job #1584871) | Istoria paginii runda/tl4/clasament | Cod sursa (job #1869042)
#include <cstdio>
#include <cstring>
using namespace std;
char s[1000005], s2[1000005];
int f[28];
int main()
{
freopen("ordine.in", "r", stdin);
freopen("ordine.out", "w", stdout);
scanf("%s", s);
int L = strlen(s);
for(int i = 0; i < L ; ++i)
++f[s[i] - 'a'];
for(int i = 0; i < L ; ++i){
bool ver = 0;
for(int j = 0; j < 26 ; ++j){
if(f[j] >= (L - i) / 2 + 1 && j + 'a' != s2[i - 1]){
ver = 1;
s2[i] = j + 'a';
--f[j];
break;
}
}
if(ver == 0){
for(int j = 0; j < 26 ; ++j)
if(f[j] && j + 'a' != s2[i - 1]){
--f[j];
s2[i] = j + 'a';
break;
}
}
}
printf("%s", s2);
return 0;
}