Cod sursa(job #421809)

Utilizator cat_red20Vasile Ioana cat_red20 Data 21 martie 2010 17:20:44
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
FILE *fin, *fout;
int n,v[256],i,p,j,q;
char ch,cha;


int main(){

	fin=fopen("ordine.in","r");
	fout=fopen("ordine.out","w");


	while(fscanf(fin,"%c",&ch)!=EOF){

		if(ch!='\n'){
			n++;
			v[ch]++;
		}
	}



	for(i=1;i<=n;i++){
		p=0;
		q=0;


		for(j='a';j<='z';j++){

			if(p==0 && v[j]!=0 && j!=cha){
				p=j;
			}

			if(v[j]>(n-i+1)/2 && j!=cha){
				q=j;
				break;
			}
		}

		if(q!=0){
			fprintf(fout,"%c",q);
			v[q]--;
			cha=q;
		}
		else{
			fprintf(fout,"%c",p);
			v[p]--;
			cha=p;
		}

	}


	fclose(fout);
	fclose(fin);

return 0;
}