Cod sursa(job #267910)
Utilizator | Data | 28 februarie 2009 15:02:52 | |
---|---|---|---|
Problema | Ordine | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.75 kb |
#include<stdio.h>
#include<string.h>
char s[1000001];
int fol[30];
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
scanf("%s",&s);
int n=strlen(s);
for (int i=0;i<n;i++)
fol[s[i]-'a'+1]++;
int nrc=1;
for (int i=1;i<=26;i++)
if (fol[i])
{
do
{
printf("%c",i+'a'-1);
fol[i]--;
if (fol[i])
{do{
while (fol[nrc]==0||nrc==i)
nrc++;
printf("%c",nrc+'a'-1);
fol[nrc]--;
printf("%c",i+'a'-1);
fol[i]--;
}while(fol[i]);
}
}
while (fol[i]);
}
return 0;
}