Pagini recente » Cod sursa (job #222408) | Cod sursa (job #2419689) | Cod sursa (job #2611157) | Istoria paginii runda/rar6/clasament | Cod sursa (job #1021258)
#include <fstream>
#include <iostream>
int v[300000], n, k;
using namespace std;
void qsm(int s, int d)
{
if(s>d)
return;
int piv=(s+d)/2;
int vp=v[piv];
int i=s, j=d;
while(i<=j)
{
while(v[i]<vp)
i++;
while(v[j]>vp)
j--;
if(i<=j)
{
v[i]=v[i]^v[j];
v[i]=v[i]^v[j];
v[i]=v[i]^v[j];
i++;
j--;
}
}
if(k>i)
qsm(piv+1, d);
else
qsm(s, piv-1);
}
int main(int argc, char *argv[])
{
ifstream fin("sdo.in");
ofstream fout("sdo.out");
fin>>n>>k;
int i;
for(i=0;i<n;i++)
fin>>v[i];
qsm(0, n-1);
fout<<v[k-1];
return EXIT_SUCCESS;
}