Cod sursa(job #340126)

Utilizator ZethpixZethpix Zethpix Data 13 august 2009 11:43:17
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
char ch,poz,sol;
long a['z'],i,n,x;
int main(){
	FILE *f,*g;
	f=fopen("ordine.in","r");
	g=fopen("ordine.out","w");
	while(!feof(f)){
		if(!feof(f)){
			fscanf(f,"%c",&ch);
			if(ch!='\n'){
				a[ch]++;
				n++;
			}
		}
	}
	sol='!';
	poz=96;
	for(i=1;i<=n;i++){
		x=(n-i+1)/2+1;
		for(ch='a';ch<='z';ch++)
			if(x==a[ch]&&ch!=sol){
				poz=ch;
				break;
			}
		if(poz==96)	poz++;
		while(poz==sol||a[poz]==0) poz++;
		sol=poz;
		fprintf(g,"%c",sol);
		a[poz]--;
	}
	fprintf(g,"\n");
	fclose(f);
	fclose(g);
	return 0;
}