Cod sursa(job #374280)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 16 decembrie 2009 16:27:06
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
# include <fstream.h>
# include <stdlib.h>
ifstream f ("sdo.in");
ofstream g("sdo.out");

int a[3000005],i,n,aux,k,x,y;



     void rez (int st,int dr)
      {
	 int i=st,j=dr,i1=0,j1=-1;
	if (dr>st)
{ 
        y=(rand ()%(dr-st))+st;

	 aux=a[st];
	 a[st]=a[y];
	 a[y]=aux;
}
	 while (i<j)
	 {
	  if (a[i]>a[j])
	   {
	   aux=a[i];
	   a[i]=a[j];
	   a[j]=aux;

	   aux=i1;
	   i1=-j1;
	   j1=-aux;
	   }
	 i=i+i1;
	 j=j+j1;
	 }
	    if (i==k)
	    g<<a[i];

	   else
	    {
	     if (i>k)
		 rez (st,i-1);
	      else
	       rez (i+1,dr);
	      }
	 }









int main ()
{

f>>n>>k;
for (i=1;i<=n;i++)
f>>a[i];


rez (1,n);

return 0;
}