Cod sursa(job #121182)

Utilizator pandaemonAndrei Popescu pandaemon Data 7 ianuarie 2008 22:31:14
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<iostream.h>

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


int cauta()
{int i,aux=(n-i+1)/2+1;

 if(gasit!=poz && gasit!=-1) {v[poz=gasit]--; return poz;}

 for(i=0;i<poz;i++)
 if(v[i]==aux) {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) {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");

}