Pagini recente » Cod sursa (job #1821767) | Cod sursa (job #3124359) | Cod sursa (job #1961067) | Cod sursa (job #1171134) | Cod sursa (job #1606552)
#include <fstream>
#include<cstring>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
char s[1000006],b[1000006];
int a[28], n;
int main()
{
int i,j;
bool ok;
fin>>(s+1);
n=strlen(s+1);
for(i=1;s[i];i++)
a[s[i]-'a'+1]++;
for(i=1;i<=n;i++)
{
ok=false;
for(j=1;j<=26;j++)
if(a[j]>=(n-i+1)/2+1 && j+'a'-1!=b[i-1])
{
ok=true;
b[i]=j+'a'-1;
a[j]--;
break;
}
if(!ok)
{
for(j=1;j<=26;j++)
if(a[j]!=0 && j+'a'-1!=b[i-1])
{
b[i]=j+'a'-1;
a[j]--;
break;
}
}
}
fout<<(b+1);
return 0;
}