Cod sursa(job #921094)
Utilizator | 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;
}