Cod sursa(job #672822)

Utilizator toniobFMI - Barbalau Antonio toniob Data 3 februarie 2012 10:34:36
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <cstdlib>
using namespace std;

ifstream in("sdo.in");
ofstream out ("sdo.out");

int n, v[3000001],k;

void citire () {
	in >> n>>k;
	for (int i = 1 ; i <= n ;++i) {
		in >> v[i];
	}
}

int quickSort (int l, int r) {
	int aux,poz=l+rand()%(r-l+1),pivot=v[poz],i,j;
	
	aux = v[poz];
	v[poz]=v[r];
	v[r]=aux;
	
	for (i=j=l;i<r;++i){
		if(v[i]<=pivot){
			aux=v[j];
			v[j]=v[i];
			v[i]=aux;
			j++;
		}
	}
	
	aux = v[j];
	v[j]=v[r];
	v[r]=aux;
	
	if (j == k) {
		return v[j];
	}
	if(j > k) {
		return quickSort (l,j-1);
	}
	return quickSort(j+1,r);
}

int main () {
	citire ();
	
	out << quickSort(1,n) << '\n';
	
	return 0;
}