Pagini recente » Cod sursa (job #1726148) | Cod sursa (job #2285759) | Cod sursa (job #2143683) | Cod sursa (job #2530143) | Cod sursa (job #1321382)
#include <cstdio>
#include <iostream>
using namespace std;
int arr[3000005],Val,n;
void afisare(int k)
{
freopen("sdo.out","w",stdout);
printf("%d",arr[k]);
}
void SDO(int left, int right, int Val)
{
int i=left;
int j=right;
int pivot=arr[(left+right)/2];
while(i<=j)
{
while(arr[i]<pivot)
i++;
while(arr[j]>pivot)
j--;
if(i<=j)
{
swap(arr[i],arr[j]);
i++;
j--;
}
}
if(left-right==1)
{
if(Val==left)
afisare(left);
else
afisare(right);
}
else
{
if(Val<=j)
SDO(left,j,Val);
else
SDO(i,right,Val);
}
}
int main()
{
freopen("sdo.in","r",stdin);
scanf("%d%d",&n,&Val);
for(int i=1;i<=n;i++)
scanf("%d",&arr[i]);
SDO(1,n,Val);
return 0;
}