Cod sursa(job #921094)

Utilizator thewildnathNathan Wildenberg thewildnath Data 20 martie 2013 19:31:14
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<stdio.h>
#include<string.h>

char v[1000002];
int f[30];

int main()
{
    freopen("ordine.in","r",stdin);
    freopen("ordine.out","w",stdout);
    int n,i,j,last=-1;
    scanf("%s",&v);
    n=strlen(v);
    for(i=0;i<n;i++)
        f[v[i]-'a']++;

    for(i=0;i<n;i++)
    {
        for(j=0;j<26;j++)
            if(f[j]==(n-i)/2+i)
            {
                printf("%c",j+'a');
                last=j;
                f[j]--;
                break;
            }
        if(j<26)
            continue;
        for(j=0;j<26;j++)
            if(j!=last&&f[j])
            {
                printf("%c",j+'a');
                last=j;
                f[j]--;
                break;
            }

    }
    return 0;
}