Cod sursa(job #120226)

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

const int maxn = 1000001;
const int maxa = 30;

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

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

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;
            }

        fputc(c, out);
        prev = c;
    }

	return 0;
}