Pagini recente » Cod sursa (job #2007721) | Cod sursa (job #1354943) | Cod sursa (job #2571925) | Istoria paginii utilizator/carriedaway | Cod sursa (job #134845)
Cod sursa(job #134845)
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
char c[1000007];
int f[128],n,cnt;
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
#define int char
scanf("%s", c);
for (int i=0;i<strlen(c);++i)
++f[c[i]];
int lst,good='a';
#define tmp good
cnt=n=strlen(c);
lst=0;
while(cnt--)
{
//printf("%d\n",(cnt+1)/2+1);
int lol=0;
for(int i=good;i<='z';++i)
if ((i^lst)&&(f[i]==((cnt+1)/2+1)))
{
lol=i;
break;
}
if(lol)
{
printf("%c", lol);
--f[lol];
if((lol==good)&&(f[good]==0))good++;
lst=lol;
//printf(" lol");
}
else
while(1)
if((tmp^lst)&&(f[tmp]))
{
printf("%c", tmp);
--f[tmp];
if((lol==good)&&(f[good]==0))good++;
lst=lol;
break;
}
else ++tmp;
//printf("\n");
}
return 0;
}