Pagini recente » Cod sursa (job #127514) | Cod sursa (job #2354782) | Cod sursa (job #3314415) | Cod sursa (job #732424) | Cod sursa (job #3336125)
#include <bits/stdc++.h>
using namespace std;
int v[3000001], a[3000001];
int piv (int st, int dr)
{
int di = 0;
int dj = -1;
int i = st;
int j = dr;
while (i < j)
{
if (v[i] > v[j]){
int aux = v[i];
v[i] = v[j];
v[j] = aux;
aux = di;
di = -dj;
dj = -aux;
}
i += di;
j += dj;
}
return i; // pozitia pivotului unde in stanga lui toate elem sunt mai mici
//si in dreapta lui sunt mai mari
}
void sorty (int st, int dr)
{
if (st < dr)
{
int poz = piv (st, dr); // gasesc pozitia pe care a ajuns pivotul
sorty (st, poz);
sorty (poz + 1, dr);
// sortez in stanga si in dreapta lui
}
}
int main()
{
ifstream cin ("sdo.in");
ofstream cout ("sdo.out");
int n, k;
cin >> n >> k;
for (int i = 0; i < n; i++)
cin >> v[i];
sorty (0, n - 1);
cout << v[k - 1];
return 0;
}