Pagini recente » Cod sursa (job #1529877) | Cod sursa (job #2944433) | Monitorul de evaluare | Cod sursa (job #561787) | Cod sursa (job #2766692)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
int main() {
string s;
fin >> s;
int f[26] = {0};
for (char c : s)
++f[c - 'a'];
int n = s.size(), last = -1;
for (int rep = 0; rep < n; ++rep) {
int best = -1;
for (int c = 0; c < 26; ++c)
if (c != last && f[c] > 0) {
if (best == -1)
best = c;
else {
if (f[c] > n / 2)
best = c;
}
}
fout << char('a' + best);
--f[best];
last = best;
}
fout << '\n';
fin.close();
fout.close();
return 0;
}