Cod sursa(job #133319)

Utilizator katakunaCazacu Alexandru katakuna Data 8 februarie 2008 11:11:32
Problema Ordine Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
char c;
int v[30],n,j,i,ok,min,k;


int main(){

FILE *f=fopen("ordine.in","r");

while(!feof(f)){
fscanf(f,"%c",&c);
if(feof(f)||c=='\n'||c==0)break;
n++;v[c-96]++;

}

fclose(f);

FILE *g=fopen("ordine.out","w");


  for(i=1;i<=n;i++){
  min=27;
  ok=1;

    for(j=1;j<=26;j++){

      if(v[j]!=0&&j<min&&ok&&j!=k){
      min=j;
      }

      if(v[j]>=(n-i+1)/2+1&&j!=k){
      ok=0;
      min=j;
      }

    }

  fprintf(g,"%c",min+96);
  k=min;
  v[min]--;
  }


fclose(g);

return 0;
}