Pagini recente » Cod sursa (job #1009319) | Cod sursa (job #2806932) | Cod sursa (job #3179956) | Cod sursa (job #3257884) | Cod sursa (job #1074225)
//
// main.c
// statdeordine
//
// Created by Alexandru Bâgu on 1/7/14.
// Copyright (c) 2014 Alexandru Bâgu. All rights reserved.
//
#include <stdio.h>
int swap(int*a, int*b)
{
int k = *a;
*a = *b;
*b = k;
return 0;
}
int qsort(int *v, int st, int dr)
{
if(st >= dr) return 0;
int a = st, b = dr, w = 0;
while(a != b)
{
if(v[a] <= v[b])
{
if(w) a++;
else b--;
}
else
{
swap(v + a, v + b);
w ^= 1;
}
}
qsort(v, st, a - 1);
qsort(v, a + 1, dr);
return 0;
}
int main(int argc, const char * argv[])
{
int n, k;
freopen("sdo.in", "r", stdin);
freopen("sdo.out", "w", stdout);
scanf("%d %d", &n, &k);
int *v = (int*) malloc(sizeof(int) * n);
int i;
for(i = 0; i < n; i++)
scanf("%d", v + i);
qsort(v, 0, n - 1);
printf("%d ", v[k]);
return 0;
}