Pagini recente » Cod sursa (job #588220) | Cod sursa (job #2044347) | Cod sursa (job #387618) | Cod sursa (job #1473075) | Cod sursa (job #421794)
Cod sursa(job #421794)
#include<stdio.h>
int v[30],i,n,j,nr,p,q,max,c;
char ch;
FILE *fin,*fout;
int main(){
fin=fopen("ordine.in","r");
fout=fopen("ordine.out","w");
while(fscanf(fin,"%c",&ch)!=EOF){
v[ch-'a']++;
n++;
}
nr=n;
c=-1;
for(i=1;i<=n;i++){
p=-1; q=0;
max=0;
for(j=0;j<=25;j++){
if(v[j]!=0 && j!=c){
if(p==-1){p=j;}
if(max<v[j]){ q=j; max=v[j];}
}
}
if(max>nr/2){fprintf(fout,"%c",q+'a'); v[q]--;c=q;}
else{fprintf(fout,"%c",p+'a'); v[p]--; c=p;}
nr--;
}
fclose(fin);
fclose(fout);
return 0;}