Pagini recente » Cod sursa (job #79577) | Cod sursa (job #249398) | Cod sursa (job #1158221) | Cod sursa (job #41495) | Cod sursa (job #127242)
Cod sursa(job #127242)
#include <stdio.h>
#include <string.h>
long found, i, j, prev, n, count[30], rez[10001];
char s[10001];
int main()
{
freopen ("ordine.in", "rt", stdin);
freopen ("ordine.out", "wt", stdout);
fgets(s, 10001, stdin);
n = strlen(s) - 1;
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 + 1)) / 2 + 1 && j != rez[i - 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;
}
}
printf("\n");
return 0;
}