Cod sursa(job #421794)

Utilizator cat_red20Vasile Ioana cat_red20 Data 21 martie 2010 17:02:28
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#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;}