Pagini recente » Cod sursa (job #550161) | Cod sursa (job #1829283) | Cod sursa (job #23790) | Cod sursa (job #725961) | Cod sursa (job #1727343)
#include <fstream>
#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
#define ll long long
#define llu long long unsigned
#define pb push_back
#define mp make_pair
string problemName = "ordine";
string inFile = problemName+".in";
string outFile = problemName+".out";
ifstream fin(inFile.c_str());
ofstream fout(outFile.c_str());
int ap[26];
int main(){
string s;
fin>>s;
int i,j;
char ch;
int n = s.size();
for(i = 0;i < n;i++){
ap[s[i]-'a']++;
}
string ans = " ";
for(i = 1;i <= n;i++){
int L = (n-i+1)/2+1;
ch = '.';
for(j = 0;j < 26;j++){
if(ap[j] == L){
ch = j+'a';
break;
}
}
if(ch != '.'){
ap[ch-'a']--;
ans += ch;
}else{
for(j = 0;j < 26;j++){
if(ap[j] && j+'a' != ans[i-1]){
char ch2 = j+'a';
ap[j]--;
ans += ch2;
break;
}
}
}
}
ans.erase(ans.begin(), ans.begin()+1);
fout<<ans;
return 0;
}