Cod sursa(job #455746)

Utilizator ncbllrNegrii Costin ncbllr Data 14 mai 2010 09:53:44
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<fstream.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)>>1];
      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);
 ifstream f("sdo.in"); 
 ofstream g("sdo.out"); 
// scanf("%ld %ld", &n, &k);
     f>>n>>k; 
 for(i=1;i<=n;i++)
//	 scanf("%ld", &a[i]);
     
     f>>a[i];  
 sort(1,n);
 
// printf("%ld \n", a[k]);
     g<<a[k];  
 return 0;
 }