Pagini recente » Cod sursa (job #1748529) | Cod sursa (job #2289591) | Cod sursa (job #2734719) | Cod sursa (job #1578396) | Cod sursa (job #1427673)
#include <fstream>
#include <cstring>
#define DIM 1000010
using namespace std;
ifstream fin ("ordine.in" );
ofstream fout("ordine.out");
int N, M, i, j, K, ok, minim;
char S1[DIM], S2[DIM];
int F[200];
void SetUp(){
fin >> S1 + 1;
N = strlen(S1 + 1);
for(i = 1; i <= N; i ++)
F[S1[i] - 'a' + 1] ++;
return;
}
void CodeExpert(){
for(i = 1; i <= N; i ++){
ok = 0;
for(j = 1; j <= 26; j ++){
if(F[j] >= (N-i+1)/2+1 && j + 'a' - 1 != S2[i-1] - 0){
ok = 1;
S2[i] = j + 'a' - 1;
F[j] --;
break;
}
}
if(ok == 0){
for(j = 1; j <= 26; j ++){
if(F[j] != 0 && S2[i-1] - 0 != j + 'a' - 1){
S2[i] = j + 'a' - 1;
F[j] --;
break;
}
}
}
}
for(i = 1; i <= N; i ++)
fout << S2[i];
return;
}
int main(){
SetUp();
CodeExpert();
return 0;
}