Pagini recente » Cod sursa (job #232600) | Cod sursa (job #2972043) | Cod sursa (job #813614) | Cod sursa (job #1941874) | Cod sursa (job #2848448)
#include <fstream>
using namespace std;
ifstream cin("ordine.in");
ofstream cout("ordine.out");
int vf[30];
char v[1000001];
int main(void){
char c;
int n = 0;
while(cin >> c){
n++;
vf[c-'a']++;
}
v[0] = '+';
for(int i = 1;i<=n;i++){
bool ok = 0;
for(int j = 0;j<=26;j++){
if(vf[j] > (n-i+1)/2 && 'a'+ j != v[i-1]){
v[i] = (char)'a'+j;
ok = 1;
vf[j]--;
break;
}
}
if(!ok){
for(int j = 0;j<=26;j++){
if(vf[j] != 0 && 'a'+ j != v[i-1]){
v[i] = j+'a';
vf[j]--;
break;
}
}
}
}
for(int i = 1;i<=n;i++){
cout << v[i];
}
}