Pagini recente » Cod sursa (job #2384390) | Cod sursa (job #2912849) | Cod sursa (job #1011740) | Cod sursa (job #1454084) | Cod sursa (job #1621158)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("ordine.in");
ofstream g("ordine.out");
const int NMAX=1000005;
char s[NMAX];
int fr[28];
inline bool Ok(int n)
{
for(int i=0;i<26;i++)
if(fr[i]>(n+1)/2)
return 0;
return 1;
}
int main()
{
f>>(s+1);
int n=strlen(s+1);
for(int i=1;i<=n;i++)
fr[s[i]-'a']++;
for(int i=1;i<=n;i++)
{
for(int j=0;j<26;j++)
{
bool ok=1;
if(fr[j]>0 && s[i-1]!=j + 'a')
{
fr[j]--;
if(Ok(n-i))
{
s[i]=j+'a';
break;
}
fr[j]++;
}
}
}
g<<(s+1)<<"\n";
return 0;
}