Cod sursa(job #458710)

Utilizator edp100Edp100 edp100 Data 25 mai 2010 21:36:54
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<stdio.h>
#include<string.h>

char s[1000006];
int f[1005],nr;
int pr,prt,sc;

int main ()
{
    int i;
    freopen("ordine.in","r",stdin);
    freopen("ordine.out","w",stdout);
    gets(s);
    nr=strlen(s);
    for(i=0;i<nr;i++)
        f[s[i]-'a'+1]++;
    pr=1;
    while(pr<=26 && !f[pr])
        pr++;
    sc=pr+1;
    while(sc<=26 && !f[sc])
        sc++;
    prt=1;
    while(f[pr] || f[sc])
    {
        if(prt)
        {
            printf("%c",pr+'a'-1);
            f[pr]--;
            prt++;
        }
        else
        {
            printf("%c",sc+'a'-1);
            f[sc]--;
            prt++;
        }
        if(!f[pr])
        {
            prt++;
            pr=sc;sc++;
            while(sc<=26 && !f[sc])
                sc++;
        }
        if(!f[sc])
            while(sc<=26 && !f[sc])
                sc++;
        prt&=1;
    }
    
    return 0;
}