Cod sursa(job #635171)

Utilizator sunt_emoSunt emo sunt_emo Data 18 noiembrie 2011 17:14:38
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
#include <iostream>
#define N 3000010
using namespace std;

std::ifstream in ("sdo.in");
std::ofstream out ("sdo.out");
int a[N],n,k,i,z;

void qsort (int l,int r) {
	if (r-l<=1||l>k||r<=k) return;
	int y=l,v,p=l+(15485863%(r-l));
	//cout<<r-l<<" "<<p<<"\n";
	z=a[p]; a[p]=a[r-1]; a[r-1]=z;
	//cout<<z;
	v=z;
	for (i=l; i<r-1; i++)
		if (a[i]<v) {
			z=a[y];
			a[y++]=a[i];
			a[i]=z;
		}
	a[r-1]=a[y];
	a[y]=v;
	qsort (l,y);
	qsort (y,r);
}

int main () {
	in>>n>>k; k--;
	for (i=0; i<n; i++) in>>a[i];
	qsort (0,n);
	out<<a[k]<<"\n";
	return 0;
}