Pagini recente » Cod sursa (job #387917) | Cod sursa (job #2110113) | Cod sursa (job #2547636) | Cod sursa (job #3160057) | Cod sursa (job #1018941)
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
#define MAX_N 3000002
long n, k, vec[MAX_N];
void quck(long stanga, long dr)
{
long i = stanga, j = dr;
long aux;
long pivot = vec[stanga + rand() % ( dr - stanga + 1 )];
while (i <= j)
{
while (vec[i] < pivot)
i++;
while (vec[j] > pivot)
j--;
if (i <= j)
{
aux = vec[i];
vec[i] = vec[j];
vec[j] = aux;
i++;
j--;
}
}
if (k<=j)
quck(stanga,j);
else if(k>=i) quck(i,dr);
}
int main()
{
f>>n>>k;
long i;
for (int i=1; i<=n; i++)
f>>vec[i];
quck(1,n);
g<<vec[k]<<"\n";
f.close();
g.close();
return 0;
}