Pagini recente » Borderou de evaluare (job #1566213) | Borderou de evaluare (job #2672015) | Cod sursa (job #752311) | Borderou de evaluare (job #979765) | Cod sursa (job #458710)
Cod sursa(job #458710)
#include<stdio.h>
#include<string.h>
char s[1000006];
int f[1005],nr;
int pr,prt,sc;
int main ()
{
int i;
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
gets(s);
nr=strlen(s);
for(i=0;i<nr;i++)
f[s[i]-'a'+1]++;
pr=1;
while(pr<=26 && !f[pr])
pr++;
sc=pr+1;
while(sc<=26 && !f[sc])
sc++;
prt=1;
while(f[pr] || f[sc])
{
if(prt)
{
printf("%c",pr+'a'-1);
f[pr]--;
prt++;
}
else
{
printf("%c",sc+'a'-1);
f[sc]--;
prt++;
}
if(!f[pr])
{
prt++;
pr=sc;sc++;
while(sc<=26 && !f[sc])
sc++;
}
if(!f[sc])
while(sc<=26 && !f[sc])
sc++;
prt&=1;
}
return 0;
}