Cod sursa(job #120222)

Utilizator DastasIonescu Vlad Dastas Data 4 ianuarie 2008 17:49:45
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>

const int maxn = 1000001;

FILE *in = fopen("ordine.in","r"), *out = fopen("ordine.out","w");

char a[maxn];
int fr[maxn];

int main()
{
	fscanf(in, "%s", a);

	for ( int i = 0; a[i]; ++i )
        ++fr[ a[i] - 'a' ];

    char prev = '0';
    for ( int i = 0; a[i]; ++i )
    {
        char c;
        for ( char j = 'a'; j <= 'z'; ++j )
            if ( prev != j && fr[j-'a'] )
            {
                c = j;
                --fr[j-'a'];
                break;
            }

        fprintf(out, "%c", c);
        prev = c;
    }

	return 0;
}