Pagini recente » Cod sursa (job #2655970) | Cod sursa (job #744227) | Cod sursa (job #734679) | Cod sursa (job #2212276) | Cod sursa (job #1255291)
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define nmax 3000005
int n, k, v[nmax];
int pivot(int st, int dr)
{
int y=st+(rand()%(dr-st))+1;
int x=v[y];
int q=st,w=dr;
while(q<=w)
{
while(v[q]<x)
q++;
while(v[w]>x)
w--;
if(q<=w)
{
swap(v[q],v[w]);
q++;
w--;
}
}
return w;
}
int element(int st, int dr, int k)
{
if(st==dr)
return (v[dr]);
int q=pivot(st,dr);
if(k>q)
return(element(q+1,dr,k));
else
return (element(st,q,k));
}
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=1;i<=n;++i)
scanf("%d",&v[i]);
srand(10);
printf("%d",element(1,n,k));
}