Cod sursa(job #418782)

Utilizator marian77ivan marian liviu marian77 Data 16 martie 2010 13:43:14
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
int v[256],i,j,nr,ok,max,n,p;
char c;
int main() {
	FILE *f=fopen("ordine.in","r");
	FILE *g=fopen("ordine.out","w");
	while(fscanf(f,"%c",&c)!=EOF) {
		v[c-'a'+1]++;
		nr++;
	}
	ok=1;
	while(ok==1) {
		max=0;p=0;ok=0;
		for(i=1;i<='z'-'a'+1;i++)
			if(max<v[i]){
				max=v[i];
				p=i;
			}
	
			if(nr-1==max&&p!=c)
			{fprintf(g,"%c",(char)(p+'a'-1));
			nr--;v[p]--;ok=1;c=p;
			}
			else
			for(i=1;i<='z'-'a'+1;i++)
			  if(v[i]>0&&i!=c) {
				fprintf(g,"%c",(char)(i+'a'-1));
				v[i]--;nr--;ok=1;c=i;
				break;
				
			}
		
	}
	return 0;
}