Pagini recente » Cod sursa (job #2228693) | Cod sursa (job #1744851) | Cod sursa (job #876248) | Cod sursa (job #549659) | Cod sursa (job #569649)
Cod sursa(job #569649)
#include<iostream>
#include<string>
using namespace std;
char S[1000005];
int cate[26];
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
scanf("%s",&S);
int n=strlen(S);
for(int i=0;i<n;++i)
++cate[S[i]-'a'];
int total=n;
int last=767;
while(total)
{
int trb=0;
for(int i=0;i<26;++i)
if(cate[i]>(total-cate[i]))
{
printf("%c",i+'a');
last=i;
--cate[i];
--total;
trb=1;
break;
}
if(!trb)
for(int i=0;i<26;++i)
if(cate[i] && i!=last)
{
printf("%c",i+'a');
last=i;
--cate[i];
--total;
break;
}
}
return 0;
}