Cod sursa(job #185541)

Utilizator AlxCojocaru Alexandru Alx Data 25 aprilie 2008 17:07:49
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
int a[26],p1,p2,poz,max;
char s[1000001],x;
int main()
{
    freopen("ordine.in","r",stdin);
    freopen("ordine.out","w",stdout);
    while (1)
    {
        scanf("%c",&x);
        if (x=='\n')
            break;
        a[x-'a']++;
        if (x-'a'>max)
            max=x-'a';
    }
    p2=1;
    while (p1<=max)
    {
        while (p1<=max&&(!a[p1]||p1==p2))
            p1++;
        while (p2<=max&&(!a[p2]||p1==p2))
            p2++;
        if (p1<=max)
        {
            s[poz]=p1+'a';
            poz++;
            a[p1]--;
        }
        if (p2<=max)
        {
            s[poz]=p2+'a';
            poz++;
            a[p2]--;
        }
    }
    s[poz]=NULL;
    printf("%s\n",s);
    return 0;
}