Cod sursa(job #635172)

Utilizator sunt_emoSunt emo sunt_emo Data 18 noiembrie 2011 17:16:54
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 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));
	z=a[p]; a[p]=a[r-1]; v=a[r-1]=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;
}