Pagini recente » Cod sursa (job #2482379) | Cod sursa (job #1998048) | Cod sursa (job #628638) | Cod sursa (job #2673630) | Cod sursa (job #1874769)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
int n, poz, f[30];
char s[1000005], sol[1000005], best;
int main(){
fin >> s;
n = strlen(s);
for( int i = 0; i < n; i++ ){
f[ s[i] - 'a' ]++;
}
poz = 0;
while( poz < n ){
best = ' ';
for( int i = 0; i <= 26; i++ ){
if( f[i] != 0 ){
if( ( poz == 0 && best == ' ' ) || ( best == ' ' && (char)( 97 + i ) != sol[poz - 1] ) ){
best = (char)( 97 + i );
}
if( f[i] == ( n - poz ) / 2 + 1 ){
best = (char)( 97 + i );
}
}
}
sol[poz] = best;
f[best - 'a']--;
poz++;
}
fout << sol;
return 0;
}