Cod sursa(job #121209)

Utilizator pandaemonAndrei Popescu pandaemon Data 7 ianuarie 2008 23:25:09
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#include<iostream.h>

/// -97
long v[26],n,i,poz=-1,gasit=-9; char s;


int cauta()
{long aux=(n-i)/2+1;
 int i;
         
 if(gasit!=poz && gasit!=-9) {v[gasit]--; return poz=gasit;}

 for(i=0;i<poz;i++)
 if(v[i]==aux && gasit==-9) {v[i]--; gasit=i; return poz=i;}
 else
 if(v[i]>0) {v[i]--; return poz=i;}

 for(i=poz+1;i<=25;i++)
 if(v[i]==aux && gasit==-9) {v[i]--; gasit=i; return poz=i;}
 else
 if(v[i]>0) {v[i]--; return poz=i;}
}


main()
{freopen("ordine.in","r",stdin);
 freopen("ordine.out","w",stdout);

 while(!feof(stdin)) {s=fgetc(stdin); v[s-97]++; n++;} n--;;

 for(i=0;i<n;i++)
 printf("%c",cauta()+97);

 printf("\n");

}