Pagini recente » Cod sursa (job #699000) | Cod sursa (job #2411651) | Borderou de evaluare (job #2683553) | Cod sursa (job #2772752) | Cod sursa (job #635171)
Cod sursa(job #635171)
#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;
}