Pagini recente » Cod sursa (job #1680362) | Cod sursa (job #566454) | Cod sursa (job #499106) | Cod sursa (job #2551695) | Cod sursa (job #1416542)
#include <stdio.h>
#define MAXN 1000000
#define BAZA 26
char s[MAXN+3];
int fr[BAZA];
int main(){
int n, i, max, min, cif, last;
FILE *fin, *fout;
fin=fopen("ordine.in", "r");
fout=fopen("ordine.out", "w");
fgets(s, MAXN+2, fin);
n=0;
while(s[n]!='\n'){
fr[s[n]-'a']++;
n++;
}
last=BAZA;
for(i=0; i<n; i++){
min=max=cif=BAZA-1;
while(cif>0){
cif--;
if(cif!=last){
if(fr[cif]!=0){
min=cif;
}
if(fr[cif]>fr[max]){
max=cif;
}
}
}
if((max==min)||((n-i)/2>=fr[max])){
fr[min]--;
fputc(min+'a', fout);
last=min;
}else{
fr[max]--;
fputc(max+'a', fout);
last=max;
}
}
fputc('\n', fout);
fclose(fin);
fclose(fout);
return 0;
}