Pagini recente » Cod sursa (job #725252) | Cod sursa (job #2280060) | Cod sursa (job #2467730) | Cod sursa (job #131191) | Cod sursa (job #780355)
Cod sursa(job #780355)
#include <fstream>
#include <cstring>
#define MAX 1000005
#define NMAX 26
using namespace std;
char sir[MAX];
int v[NMAX];
int main()
{
ifstream in("ordine.in"); in.getline(sir, MAX); in.close();
int lgt = strlen(sir);
for(int i = 0; i < lgt; i++) v[sir[i] - 'a']++;
ofstream out("ordine.out"); int b = -1, a = -1;
for(int i = 0; i < lgt; i++)
{
int j = 0;
while(!v[j] || j == a) j++;
b = a; a = j;
for(j = a + 1; j < NMAX; j++)
if(v[j] == (lgt - i) / 2 + 1 && j != b)
a = j;
v[a]--;
out<<(char)('a' + a);
}
out.close();
return 0;
}