Cod sursa(job #998574)

Utilizator geniucosOncescu Costin geniucos Data 17 septembrie 2013 17:45:04
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<cstdio>
#include<cstring>
using namespace std;
int ul,n,i,j,ap[30];
char sir[1000009];
void bag(int j)
{
    printf("%c",(char)j+'a');ul=j;
    ap[j]--;
}
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
gets(sir+1);
n=strlen(sir+1);
for(i=1;i<=n;i++)
    ap[sir[i]-'a']++;
ul=-1;
for(i=1;i<=n;i++)
{
    for(j=0;j<26;j++)
        if(ap[j]>=(n-i+1)/2+1) break;
    if(j<26) bag(j);
    else
    {
        for(j=0;j<26;j++)
            if(ap[j]>0&&j!=ul) break;
        bag(j);
    }
}
printf("\n");
return 0;
}