Pagini recente » Cod sursa (job #1443041) | Cod sursa (job #1607349) | Cod sursa (job #1070904) | Cod sursa (job #365860) | 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;
}