Pagini recente » Cod sursa (job #773050) | Cod sursa (job #1763683) | Prezentare infoarena | Cod sursa (job #241719) | Cod sursa (job #132944)
Cod sursa(job #132944)
#include<stdio.h>
#include<string.h>
FILE*fin=fopen("ordine.in","r");
FILE*fout=fopen("ordine.out","w");
#define maxn 1000001
int nc[30],n;
char s[maxn];
int main()
{
int i,j,ant='0',g;
for(i='a';i<='z';i++)
nc[i-'a']=0;
fscanf(fin,"%s",&s);
n=strlen(s);
for(j=0;j<n;j++)
nc[s[j]-'a']++;
for(j=1;j<=n;j++)
{
g=0;
for(i='a';i<='z';i++)
if(2*nc[i-'a']>n-j+1){g=1;break;}
if(g==1)
{
fprintf(fout,"%c",i);
nc[i-'a']--;
ant=i;
}
else for(i='a';i<='z';i++)
if(nc[i-'a']>0&&i!=ant)
{
fprintf(fout,"%c",i);
nc[i-'a']--;
ant=i;
break;
}
}
return 0;
}