Pagini recente » Cod sursa (job #1127337) | Cod sursa (job #2779777) | Cod sursa (job #2780361) | Cod sursa (job #3147710) | Cod sursa (job #212257)
Cod sursa(job #212257)
#include <stdio.h>
#include <string.h>
FILE *fin,*fout;
char s[1000001];
long contor[30];
char lit[30];
long i,j,n,ok,ver,ok2;
int main(){
fin=fopen("ordine.in","r");
fout=fopen("ordine.out","w");
fscanf(fin,"%s",&s);
n=strlen(s);
for(i=0;i<n;i++)contor[s[i]-'a']++;
for(i=0;i<=25;i++) lit[i]=i+'a';
ver=26; i=0;
do{
ok=0; ok2=0; i++;
for(j=0;j<=25;j++)
if(contor[j]==(n-i+1)/2+1 && lit[j]!=lit[ver]){
fprintf(fout,"%c",lit[j]);
contor[j]--; ok=1; ver=j;ok2=1;
}
if(!ok)
for(j=0;j<=25&&!ok;j++) if(contor[j]&&(lit[j]!=lit[ver])){
ok=1; ok2=1;
fprintf(fout,"%c",lit[j]);
contor[j]--; ver=j;
}
}while(ok2);
fclose(fin); fclose(fout);
return 0;
}