Pagini recente » Cod sursa (job #385460) | Cod sursa (job #1089681) | Cod sursa (job #296290) | Cod sursa (job #1136826) | Cod sursa (job #1893537)
#include <cstdio>
#include <ctime>
#include <cstdlib>
#include <algorithm>
using namespace std;
#define MAX 3000000
int n, k;
int v[MAX + 1];
void quick(int st, int dr) {
int i = st, j = dr, pivo = st + rand() % (dr - st + 1);
int piv = v[pivo];
while(i <= j) {
while(v[i] < piv)
i++;
while(v[j] > piv)
j--;
if(i <= j)
swap(v[i], v[j]), i++, j--;
}
if(st < j && j >= k)
quick(st, j);
else if(i < dr && j < k)
quick(i, dr);
}
FILE *fin = fopen("sdo.in", "r"), *fout = fopen("sdo.out", "w");
int main() {
fscanf(fin, "%d%d", &n, &k);
for(int i = 1;i <= n;i++)
fscanf(fin, "%d", &v[i]);
quick(1, n);
fprintf(fout, "%d", v[k]);
fclose(fin), fclose(fout);
return 0;
}