Pagini recente » Cod sursa (job #774389) | Cod sursa (job #2388846) | Cod sursa (job #2323821) | Cod sursa (job #2707654) | Cod sursa (job #2566286)
#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;
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;
while (!gasit)
{
if (i == n)
{
gasit = true;
continue;
}
ok = false;
for (j=1; j<=26 && !ok; j++)
{
if (fr[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;
}