Cod sursa(job #127971)

Utilizator marinMari n marin Data 25 ianuarie 2008 17:23:32
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>


long int n,i,ok;
long int v[130];
char c,t;
int p;
char j;
int main(){
  FILE *f = fopen("ordine.in","r");
  n=0;
  while (!feof(f)) {
    if ((p = fscanf(f,"%c",&c))!=1)
      break;
    if ((c>='a')&&(c<='z')) {
      v[c]++;
      n++;
    }
  }
  FILE *g = fopen("ordine.out","w");

  t='A';
  for (i=1;i<=n;i++) {
    ok=1;
    for (j='a';j<='z';j++)
      if (v[j]==(n-i+1)/2+1) {
	ok=0;
	break;
      }
    if (ok==0) {
      v[j]--;
      t=j;
      fprintf(g,"%c",j);
//      printf("%c",j);
    }else {
      for (j='a';j<='z';j++) {
	if ((v[j]!=0) && (j!=t)) {
	  v[j]--;
	  t=j;
	  fprintf(g,"%c",j);
//	  printf("%c",j);
	  break;
	}
      }
    }
  }

  fclose(g);
  return 0;
}