Cod sursa(job #455744)

Utilizator ncbllrNegrii Costin ncbllr Data 14 mai 2010 09:47:30
Problema Statistici de ordine Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<iostream.h>

long a[3000009],n,k;

int schimb(long i,long j)
{
 long aux=a[i];
 a[i]=a[j];
 a[j]=aux;
 }

int sort(long i,long j)
{
 long s=i,d=j,piv=a[(i+j)/2];
      while(s<=d)
      {
          while (a[s] < piv) s ++;
          while (a[d] > piv) d --;
          if(s <= d)
          {
              schimb(s,d);
              s++;
              d--;
          }
      }
      if( (i < d) && (i <= k) && (k <= d)) sort(i,d);
      if( (s < j) && (s <= k) && (k <= j)) sort(s,j);
 }

int main()
{ 
 long i;
 freopen("sdo.in", "r", stdin);
 freopen("sdo.out", "w", stdout);
 scanf("%ld %ld", &n, &k);
 for(i=1;i<=n;i++)
	 scanf("%ld", &a[i]);
 sort(1,n);
 printf("%ld \n", a[k]);
 return 0;
 }