Pagini recente » Cod sursa (job #2902399) | Cod sursa (job #1977833) | Cod sursa (job #2932219) | Cod sursa (job #220545) | Cod sursa (job #2624336)
#include <fstream>
#include <stdlib.h>
using namespace std;
#define maxn 3000001
int n, k, i, j, ind_pivot;
long long int v[maxn], pivot;
void swap(long long int *x, long long int *y){
int temp = *x;
*x = *y;
*y = temp;
}
long long int partition(int l, int r){
pivot = v[l + (rand() % (r - l))];
i = l; j = r;
while(i <= j) {
while(v[i] < pivot)
i++;
while(v[j] > pivot)
j--;
if(i <= j) {
swap(&v[i], &v[j]);
i++;
j--;
}
}
return i;
}
void quickSort(long long int st, long long int dr){
ind_pivot = partition(st, dr);
if(st < ind_pivot-1)
quickSort(st, ind_pivot - 1);
if(ind_pivot < dr)
quickSort(ind_pivot, dr);
}
int main() {
ifstream f("grader_test2.in");
ofstream g("sdo.out");
f >> n >> k;
for(i = 1; i <= n; i++)
f >> v[i];
quickSort(1, n);
g << v[k];
return 0;
}