Pagini recente » Cod sursa (job #2926939) | Cod sursa (job #1655921) | Cod sursa (job #1863906) | Cod sursa (job #2326006) | Cod sursa (job #2378068)
#include <fstream>
using namespace std;
ifstream in("sdo.in");
ofstream out("sdo.out");
const int N = 3000000;
int v[N];
void QS(int v[], int st, int dr, int k);
int Partitie(int v[], int st, int dr);
int main()
{
int n, k;
in >> n >> k;
for(int i=0; i<n; i++) in >> v[i];
QS(v, 0, n-1, k--);
out << v[k];
return 0;
}
void QS(int v[], int st, int dr, int k)
{
if(st>=dr) return;
int m=Partitie(v, st, dr);
if(k<m) QS(v, st, m-1, k);
if(k>m) QS(v, m+1, dr, k);
}
int Partitie(int v[], int st, int dr)
{
int m=st;
for(int i=st; i<dr; i++)
{
if(v[i]<v[dr]) swap(v[i], v[m++]);
}
swap(v[m], v[dr]);
return m;
}