Pagini recente » Cod sursa (job #2130248) | Cod sursa (job #1190229) | Cod sursa (job #1413880) | Cod sursa (job #113765) | Cod sursa (job #1619299)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
char s[1000005],v[1000005];
int f[30];
int n;
bool ok;
int main()
{int i,j;
fin>>(s + 1);
n=strlen(s+1);
for(i=1;s[i];i++)
{j=s[i]-'a'+1;
f[j]++;
}
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!=v[i-1])
{ok=true;
v[i]=j+'a'-1;
f[j]--;
break;
}
if(!ok)
{for(j=1;j<=26;j++)
if(f[j]!=0&&j+'a'-1!=v[i-1])
{v[i]=j+'a'-1;
f[j]--;
break;
}
}
}
fout<<(v+1);
}