Cod sursa(job #121230)

Utilizator pandaemonAndrei Popescu pandaemon Data 8 ianuarie 2008 00:58:40
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#include<iostream.h>

/// -97
long v[27],n,j,gasit=-9; char s; int poz=-1;
FILE *pfile;

int cauta()
{long aux=(n-j+1)/2+1;
 int i,ad=0;
         
 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 && ad==0) {poz=i; ad=1;}

 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 && ad==0) {poz=i; ad=1;}   v[poz]--; return poz;
}


int main()
{pfile=fopen("ordine.in","r");
 freopen("ordine.out","w",stdout);

 while(!feof(pfile)) {s=fgetc(pfile); v[s-97]++; n++;}
		 n--;
 for(j=1;j<=n;j++)
 printf("%c",cauta()+97); printf("\n");

}