Cod sursa(job #422175)

Utilizator marian77ivan marian liviu marian77 Data 22 martie 2010 11:55:50
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 3.08 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) {
		if(c!='\n') {
			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/2<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;
}