Pagini recente » Cod sursa (job #1629524) | Cod sursa (job #2403062) | Cod sursa (job #903124) | Cod sursa (job #385042) | Cod sursa (job #110739)
Cod sursa(job #110739)
#include <stdio.h>
int f[27], n;
int main()
{
int i, s, ex = 1, l = 0;
char c, uc = 0;
freopen("ordine.in", "r", stdin);
freopen("ordine.out", "w", stdout);
while (scanf("%c",&c)>0)
{
f[c-'a']++;
n++;
}
if (c == '\n') n--;
while (ex)
{
s = n/2+1;
for ( i = 0; i <= 25 && !l; i++)
if ( s == f[i])
l = i;
if ( l )
{
while ( f[l] )
{
printf("%c", l+'a');
f[l]--;
i = 0;
while ( (f[i]==0 || i == l) && i <= 25 )
i++;
if ( i <= 25)
{
printf("%c", i+'a');
f[i]--;
}
}
ex = 0;
}
else
{
i = 0;
while ( (f[i] == 0 || i+'a'== uc) && i <= 25)
i++;
if ( i <=25)
{
uc = i + 'a';
printf("%c", uc);
f[i]--;
n--;
}
else
ex = 0;
}
}
return 0;
}