Pagini recente » Cod sursa (job #2307552) | Cod sursa (job #1791923) | Cod sursa (job #3179201) | Cod sursa (job #2747960) | Cod sursa (job #1606526)
#include <bits/stdc++.h>
using namespace std;
int f[28] , n ;
char s[1000005] , sol[1000005];
ifstream fin ("ordine.in");
ofstream fout ("ordine.out");
int main()
{
int i , j ;
bool ok;
fin >> (s+1) ;
n=strlen(s+1) ;
for (i=1;s[i];i++) f[s[i]-'a'+1]++;
for (i=1;i<=n;i++)
{
ok=false;
for (j=1;j<=26;j++)
if (f[j]>=(n-i+1)/2+1 && j+'a'-1!=sol[i-1])
{
ok=true;
sol[i]=j+'a'-1;
f[j]--;
break;
}
if (!ok)
{
for (j=1;j<=26;j++)
if (f[j]!=0 && j+'a'-1!=sol[i-1])
{
sol[i]=j+'a'-1;
f[j]--;
break;
}
}
}
fout << (sol+1);
return 0;
}