Pagini recente » Cod sursa (job #1165096) | Cod sursa (job #545238) | Cod sursa (job #2184059) | Cod sursa (job #440928) | Cod sursa (job #252359)
Cod sursa(job #252359)
//includeuri
#include <stdio.h>
int a[28];
int aa=999,bb=1000;
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
char c;
while (scanf("%c",&c)!=EOF)
{
if (c==10) break;
a[c-'a'+1]++;
if (c-'a'+1<aa)
aa=c-'a'+1;
if (c-'a'+1<bb && aa<c-'a'+1)
bb=c-'a'+1;
a[0]++;
}
///////////////////////////////////////////////////////////
int p=(a[0]/2+1),operatie=1;
int i,k=0,ultima=0;
while (operatie)
{
operatie=0;
for (i=1;i<=26;i++)
if (a[i]==p)
{
int j;
printf("%c",i+'a'-1);
for (j=1;j<=27;j++)
if (j!=i)
for (k=1;k<=a[j];k++)
printf("%c%c",j+'a'-1,i+'a'-1);
return 0;
}
for (i=1;i<=26;i++)
if (a[i] && i!=ultima)
{
printf("%c",i+'a'-1);
a[i]--;
a[0]--;
operatie=1;
break;
}
p=a[0]/2+1;
}
return 0;
}