Pagini recente » Cod sursa (job #2865580) | Cod sursa (job #1802303) | Cod sursa (job #2345014) | Cod sursa (job #2315806) | Cod sursa (job #1893522)
#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, piv = st + rand() % (dr - st + 1);
while(i <= j) {
while(v[i] < v[piv])
i++;
while(v[j] > v[piv])
j--;
if(i <= j)
swap(v[i], v[j]), i++, j--;
}
if(st < j && j >= k)
quick(st, j);
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;
}