Pagini recente » Cod sursa (job #2889528) | Cod sursa (job #3279365) | Cod sursa (job #1967690) | Borderou de evaluare (job #1004053) | Cod sursa (job #3031017)
#include <bits/stdc++.h>
#include <algorithm>
#include <vector>
using namespace std;
void quicksort(int *v, int left, int right, int k)
{
if (left == right)
return;
int mid = left + (right - left) / 2;
int pivot = v[mid], j = left;
// temporarily place pivot at the end
swap(v[mid], v[right]);
for (int i = left; i < right; i++)
if (v[i] < pivot) {
swap(v[j], v[i]);
j++;
}
swap(v[j], v[right]);
if (j == k)
return;
if (j < k)
quicksort(v, j + 1, right, k);
else
quicksort(v, left, j - 1, k);
}
int main()
{
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n, k;
fin >> n >> k;
int *v = (int*) malloc(n * sizeof(int));
if (!v) return -1;
for (int i = 0; i < n; i++)
fin >> v[i];
quicksort(v, 0, n - 1, k - 1);
fout << v[k - 1];
return 0;
}