Pagini recente » Cod sursa (job #2110766) | Cod sursa (job #1296730) | Cod sursa (job #696940) | Cod sursa (job #816643) | Cod sursa (job #2305856)
#include<iostream>
#include<fstream>
using namespace std;
ifstream si("sdo.in");
ofstream so("sdo.out");
int v[3000005];
int sortare(int st, int dr) {
int piv=v[(st+dr)>>1];
int i=st-1, j=dr+1, aux;
while(1) {
i++;
while(piv>v[i])
++i;
j--;
while(piv<v[j])
--j;
if(i<j) {
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else
return j;
}
}
int main() {
int n, k;
si>>n>>k;
for(int i=1; i<=n; ++i)
si>>v[i];
int st=1, s, dr=n, t, r=k;
while(st<dr) {
s=sortare(st,dr);
t=s-st+1;
if(t>=r) {
dr=s;
}
else {
st=s+1;
r-=t;
}
}
cout<<v[k];
return 0;
}