Pagini recente » Cod sursa (job #1283241) | Cod sursa (job #772182) | Cod sursa (job #1733719) | Cod sursa (job #1702890) | Cod sursa (job #2712857)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
char s[1000005],sol[1000005];
int fr[30],n,k;
int main()
{
int x,i,j;
fin >> (s + 1);
n = strlen(s + 1);
for (i = 1; i <= n; i++)
{
x = s[i]-'a'+1;
fr[x]++;
}
for (i = 1; i <= n; i++)
{
for (j = 1; j <= 26; j++)
if (fr[j]>(n-i+1)/2 and j+'a'-1!=sol[k])
{
sol[++k] = j + 'a' - 1;
fr[j]--;
break;
}
if (j == 27)
{
for (j=1; j<=26; j++)
if (fr[j] and j + 'a' - 1 != sol[k])
{
sol[++k] = j + 'a' - 1;
fr[j]--;
break;
}
}
}
fout << (sol + 1);
return 0;
}