Pagini recente » Cod sursa (job #2940924) | Cod sursa (job #1849916) | Cod sursa (job #1196619) | Cod sursa (job #2519932) | Cod sursa (job #2393166)
#include <iostream>
#include <cstring>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
char sir[256];
int aparitii[28], precedent;
int nextChar(int i) {
for (int j = i + 1; j <= 25; j++)
if (aparitii[j])
return j;
return -1;
}
void anagrama() {
for (int i = 0; i <= 25; i++)
if (nextChar(i) != -1)
while (aparitii[i] && nextChar(i) != -1) {
fout << char(i + 'a');
fout << char(nextChar(i) + 'a');
aparitii[i]--;
aparitii[nextChar(i)]--;
if (!aparitii[i] && nextChar(nextChar(i)) != -1) {
fout << char(nextChar(nextChar(i)) + 'a');
aparitii[nextChar(nextChar(i))]--;
}
}
else
if (aparitii[i])
fout << char(i + 'a');
}
int main() {
fin >> sir;
for (int i = 0; i <= strlen(sir); i++)
aparitii[sir[i] - 'a']++;
anagrama();
return 0;
}