Cod sursa(job #474585)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 4 august 2010 12:04:57
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>
char s[1<<20];
int last,poz,n,f[31];
int main()
{
    freopen("ordine.in","r",stdin);
    freopen("ordine.out","w",stdout);
    gets(s);
    for(int i=0;s[i];i++)
        if(s[i]>='a' && s[i]<='z')
        {
            n=i;
            f[s[i]-'a'+1]++;
        }
    last=-1;
    for(int i=0;i<=n;i++)
    {
        int poz=0;
        for(int j=1;j<=26;j++)
            if(f[j]==(n-i+1)/2+1 && j!=last)
                poz=j;
        if(poz)
        {
            printf("%c",'a'+poz-1);
            f[poz]--;
            last=poz;
        }
        else
        {
            for(int j=1;j<=26;j++)
                if(f[j] && j!=last)
                {
                    printf("%c",'a'+j-1);
                    f[j]--;
                    last=j;
                    break;
                }
        }
    }
    return 0;
}