Pagini recente » Cod sursa (job #1315303) | Cod sursa (job #832191) | Rating Prejbeanu Ionel (ipre) | Cod sursa (job #2273633) | Cod sursa (job #2566307)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f ("ordine.in");
ofstream g ("ordine.out");
char s[1000005], aux[1000005], helper;
int fr[30], i, j, n, minim;
bool gasit, ok;
int main()
{
f >> s, n = strlen(s);
for (i=0; s[i]; i++)
fr[s[i]-'a'+1] ++;
gasit = false, i = 0, minim = 1;
while (!gasit)
{
if (i == n)
{
gasit = true;
continue;
}
ok = false;
for (j=minim; j<=26 && !ok; j++)
{
if (fr[j])
{
minim = min(minim, j);
helper = j + 'a' - 1;
if (i == 0)
{
aux[i] = helper;
fr[j] --, i ++;
ok = true;
}
else if (aux[i-1] != helper)
{
aux[i] = helper;
fr[j] --, i ++;
ok = true;
}
}
}
}
g << aux;
return 0;
}