Pagini recente » Cod sursa (job #2828997) | Cod sursa (job #580061) | Cod sursa (job #2639639) | Cod sursa (job #130447) | Cod sursa (job #1194949)
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#define N 3000010
using namespace std;
int n,k,i,a[N];
void SDO(int,int);
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
srand(time(NULL));
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
SDO(1,n);
return 0;
}
void SDO(int L,int R)
{
if(L==R){printf("%d",a[L]);return;}
int LL=L,RR=R,V,aux;
aux=L+rand()%(R-L+1);
V=a[aux];
do
{
while(a[LL]<V)LL++;
while(a[RR]>V)RR--;
if(LL<=RR){aux=a[LL];a[LL]=a[RR];a[RR]=aux;LL++;RR--;}
}while(LL<=RR);
if(L<=k&&k<=RR)SDO(L,RR);
else SDO(LL,R);
}