Cod sursa(job #120224)

Utilizator DastasIonescu Vlad Dastas Data 4 ianuarie 2008 17:51:39
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 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' ] > 0 )
            {
                c = j;
                --fr[ j - 'a' ];
                break;
            }

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

	return 0;
}