Pagini recente » Cod sursa (job #2782090) | Cod sursa (job #1864112) | Cod sursa (job #1266837) | Cod sursa (job #641509) | Cod sursa (job #2437141)
#include<cstdlib>
#include<ctime>
#include<fstream>
using namespace std;
#define maxn 3000005
int v[maxn],n,k;
ifstream cin("sdo.in");
ofstream cout("sdo.out");
int quicksort(int inf, int sup){
int x,aux,i,j;
i=inf;
j=sup;
x=v[inf+(rand()%(sup-inf+1))];
while(i<=j){
while(i<sup && v[i]<x) i++;
while(j>inf && v[j]>x) j--;
if(i<=j){
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++; j--;
}
}
return j;
};
void part(int li,int lf,int k){
if(li==lf)
return;
int q=quicksort(li,lf);
int t=q-li+1;
if(t>=k)
part(li,q,k);
else
part(q+1,lf,k-t);
}
int main()
{
srand(time(NULL));
cin>>n>>k;
for(int i=1; i<=n; i++)
cin>>v[i];
part(1,n,k);
cout<<v[k];
return 0;
}