Pagini recente » Cod sursa (job #501314) | jboi-2007 | Cod sursa (job #2014352) | Monitorul de evaluare | Cod sursa (job #185557)
Cod sursa(job #185557)
#include <stdio.h>
int a[26],p1,poz,max,n;
char s[1000001],x;
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
while (1)
{
scanf("%c",&x);
if (x=='\n')
break;
a[x-'a']++;
if (x-'a'>max)
max=x-'a';
n++;
}
int i,j;
for (i=0;i<n;i++)
{
for (j=0;j<26;j++)
if (a[j]&&(i==0||'a'+j!=s[i-1]))
{
p1=j;
break;
}
for (j=p1;j<26;j++)
if (a[j]>(n-i)/2)
{
p1=j;
break;
}
s[i]='a'+p1;
a[p1]--;
}
s[n]=NULL;
printf("%s\n",s);
return 0;
}