Cod sursa(job #204180)

Utilizator DraStiKDragos Oprica DraStiK Data 22 august 2008 12:59:38
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <string.h>
char s[1000005];
int n,a[27];
int maxim (int ant)
{
    int i,ii=0;
    for (i=1; i<=26; ++i)
        if (i!=ant)
            if (a[i])
            {
                ii=i;
                break;
            }
    --a[ii];
    return ii;
}
void solve ()
{
    int i,ant=0,max;
    for (i=0; i<n; ++i)
        a[s[i]-'a'+1]++;
    for (i=1; i<=n; ++i)
    {
        max=maxim (ant);
        ant=max;
        printf ("%c",max+'a'-1);
    }
    printf ("\n");
}
int main ()
{
    freopen ("ordine.in","r",stdin);
    freopen ("ordine.out","w",stdout);
    gets (s);
    n=strlen(s);
    solve ();
    return 0;
}