Pagini recente » Rating Preda M. (predam) | Cod sursa (job #1221837) | Cod sursa (job #1471540) | Cod sursa (job #1092684) | Cod sursa (job #461243)
Cod sursa(job #461243)
#include <cstdio>
#include <string>
const char FIN[] = "ordine.in", FOU[] = "ordine.out";
const int MAX_N = 1000005;
char a[MAX_N];
int s[27];
int main()
{
freopen (FIN , "r" , stdin);
freopen (FOU , "w" , stdout);
fgets ( a , MAX_N , stdin ) ;
int N = strlen ( a ) ;
for (int i = 0 ; i < N; ++i)
++s[a[i] - 'a'];
for ( ; a[N - 1] == '\n'; --N) ;
char r = 0;
for (int i = 0; i < N; ++i)
{
int k = 0;
for (int j = 'a' ; j <= 'z'; ++j)
if ( s[j - 'a'] && !k && j != r )
--s[j - 'a'], k = j;
else
if ( s[j - 'a'] == ( ( N - i ) >> 1 ) + 1 )
++s[k - 'a'], --s[j - 'a'], k = j, j = 'z' + 1;
r = k;
printf("%c", k);
}
return 0;
}