Cod sursa(job #768933)

Utilizator ion824Ion Ureche ion824 Data 17 iulie 2012 21:55:15
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
using namespace std;
int i,t[3000001],n;

void Quick(int st,int dr,int k ){ 
     int i=st,j=dr,w,piv=t[(i+j)/2]; 
      
     do{
	  while(t[i] < piv) i++; 
	  while(t[j] > piv) j--;
      if(i <= j) { w=t[i]; t[i]=t[j]; t[j]=w; i++; j--; }
      }while(j >= i);
        
	if(st<j) 
		if(j-st+1>=k) 
			Quick(st,j,k);
	
	 if(dr>i) 	 
		 if(j-st+1<k)
			Quick(i,dr,k-(j-st+1));	 
}

int main()
{
	ifstream fin("sdo.in");
	ofstream fout("sdo.out");	
    int k;
    fin>>n>>k;

    for(i=1;i<=n;i++)
      fin>>t[i];
    Quick(1,n,k);
    fout<<t[k];
}