Pagini recente » Cod sursa (job #592994) | Cod sursa (job #1571207) | Cod sursa (job #1812374) | Cod sursa (job #1080332) | Cod sursa (job #1281001)
# include <bits/stdc++.h>
using namespace std;
ifstream fi("ordine.in");
ofstream fo("ordine.out");
const int nmax = 1e6 + 5;
char c[nmax];
int s[35];
inline char get(char a,int n)
{
char b;
for (char i=0;i<26;++i) if (i!=a && s[i]) {b=i;break;}
for (char i=b+1;i<26;++i) if (a != i && s[i] >=n / 2 + 1) {b=i;break;}
--s[b];
return b;
}
int main(void)
{
fi>>(c+1);
int n=strlen(c+1),t=30;
for (int i=1;c[i];++i) ++s[c[i]-'a'];
for (int i=n;i;--i) fo << char((t=get(t,i))+'a');
return fo << '\n',0;
}