Cod sursa(job #114340)

Utilizator pandaemonAndrei Popescu pandaemon Data 13 decembrie 2007 20:43:07
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#include<iostream.h>
#define LMAX 60000

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


int cauta()
{int j,var2; long var=(n-i+1)/2+1;

for(j=0;j<last;j++)
if(v2[j]==var) {v2[j]--; return j;}
for(j=last+1;j<26;j++)
if(v2[j]==var) {v2[j]--; return j;}

for(j=0;j<26;j++) if(v2[j]>0 && j!=last) {v2[j]--; return j;}


}


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

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

 for(i=1;i<=n;i++)
 {last=cauta(); printf("%c",last+97);}  cout<<endl;


}