Cod sursa(job #921105)

Utilizator thewildnathNathan Wildenberg thewildnath Data 20 martie 2013 19:42:49
Problema Ordine Scor 100
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+1)
                break;
        if(j<26)
        {
            printf("%c",j+'a');
            last=j;
            f[j]--;
            continue;
        }
        for(j=0;j<26;j++)
            if(j!=last&&f[j])
                break;
        if(j<26)
        {
            printf("%c",j+'a');
            last=j;
            f[j]--;
            continue;
        }

    }
    return 0;
}