Pagini recente » Cod sursa (job #249693) | Cod sursa (job #1688541) | Cod sursa (job #737933) | Cod sursa (job #1765264) | Cod sursa (job #318941)
Cod sursa(job #318941)
// ordine.cpp : Defines the entry point for the console application.
//
#include <cstdio>
char c[1001001];
char c2[1001001];
int e[30],curent=0,nr=0,t,suma,maxim,p;
int main()
{
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
int i,l1=1,l2=2;
char a;
fgets(c,100000,stdin);
for(i=0;c[i] && c[i]!='\n';i++)
e[c[i]-96]++;
t=i-1;
while(nr<t)
{
suma=0;maxim=-1,p;
for(i=(l1<l2?l1:l2);i<=29;i++)
{
suma=suma+e[i];
if(maxim<e[i])
{
maxim=e[i];
p=i;
}
}
if(maxim<=e[i]+1)
l1<l2?l2:l1=p;
while(!e[l1])
l1+1!=l2?l1++:l1=l2+1;
e[l1]--;
c2[++nr]=l1+96;
while(!e[l2])
l2+1!=l1?l2++:l2=l1+1;
e[l2]--;
c2[++nr]=l2+96;
}
fwrite(c2+1,t,sizeof(int),stdout);
}