Cod sursa(job #377663)

Utilizator GotenAmza Catalin Goten Data 25 decembrie 2009 19:26:23
Problema Statistici de ordine Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream.h>
#include<iostream.h>

long a[3000000],n,k;

void ex(long i,long j)
{
 long aux=a[i];
 a[i]=a[j];
 a[j]=aux;
 }

void qs(long i,long j)
{
 long s=i,d=j,piv=(i+j)>>1;
 while(s<=d)
 {
  while(a[s]<a[piv])s++;
  while(a[d]>a[piv])d--;
  if(s<=d)
  {
  ex(s,d);
  s++;
  d--;
  }
  }
 if(i<d&&k<=d) qs(i,d);
 if(s<j&&s<=k) qs(s,j);
 }

int main()
{ 
 long i;
 ifstream f("sdo.in");
 ofstream g("sdo.out");
 f>>n>>k;
 for(i=1;i<=n;i++)f>>a[i];
 qs(1,n);
 g<<a[k];
 return 0;
 }