Pagini recente » Cod sursa (job #2251252) | Cod sursa (job #924517) | Cod sursa (job #2435991) | Cod sursa (job #431062) | Cod sursa (job #127495)
Cod sursa(job #127495)
#include <stdio.h>
#include <string.h>
long found, i, j, prev, n, count[30];
char s[1000100];
int main()
{
freopen ("ordine.in", "rt", stdin);
freopen ("ordine.out", "wt", stdout);
fgets(s, 1000100, stdin);
n = strlen(s) - 1;
if (s[n] == '\n')
n --;
for (i = 0; i <= n; i ++)
count[s[i] - 'a']++;
prev = 27;
found = 0;
for (j = 0; j <= 25; j ++)
if (count[j] == (n + 1) / 2 + 1)
{
printf("%c", (char) j + 'a');
prev = j;
count[j] --;
found = 1;
break;
}
if (!found)
for (j = 0; j <= 25; j ++)
if (count[j] && j != prev)
{
printf("%c", (char) j + 'a');
prev = j;
count[j] --;
break;
}
for (i = 1; i <= n; i ++)
{
found = 0;
for (j = 0; j <= 25; j ++)
if (count[j] == ((n + 1) - i) / 2 + 1 && j != prev)
{
printf("%c", (char) j + 'a');
prev = j;
count[j] --;
found = 1;
break;
}
if (!found)
for (j = 0; j <= 25; j ++)
if (count[j] && j != prev)
{
printf("%c", (char) j + 'a');
prev = j;
count[j] --;
break;
}
}
printf("\n");
return 0;
}