Pagini recente » Cod sursa (job #2569642) | Cod sursa (job #1364437) | Cod sursa (job #671089) | Cod sursa (job #3243838) | Cod sursa (job #328233)
Cod sursa(job #328233)
#include<stdio.h>
#define MAX ('z'+1)
int a[MAX];
char ant,c,d;
int i,n;
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
scanf("%c",&c); n=0;
while (c!='\n')
{
a[c]++;
n++;
scanf("%c",&c);
}
for (c='a'; c<='z'; c++){
if (a[c]==n/2+1)
break;
}
if (c==MAX)
{
ant='!';
for (i=1; i<=n; i++)
{
for (c='a'; c<MAX; c++)
if (a[c]>=(n-i+1)/2+1)
break;
if (c==MAX)
for (c='a'; c<='z'; c++)
if (a[c] && ant!=c)
break;
--a[c];
ant=c;
printf("%c",c);
}
}
else
{
printf("%c",c);
for (d='a'; d<c; d++)
for (i=1; i<=a[d]; i++)
printf("%c%c",d,c);
for (d=c+1; d<='z'; d++)
for (i=1; i<=a[d]; i++)
printf("%c%c",d,c);
}
printf("\n");
fclose(stdin); fclose(stdout);
return 0;
}