Pagini recente » Cod sursa (job #2587021) | Cod sursa (job #364224) | Cod sursa (job #633000) | Cod sursa (job #938121) | Cod sursa (job #2294000)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <time.h>
using namespace std;
int sortare_p ( int *v, int st, int dr)
{
int p = v[(st + dr) / 2];
while ( 1 )
{
while ( v[st] < p )
st++;
while ( v[dr] > p )
dr--;
if ( st < dr )
swap (v[st],v[dr]);
else return dr;
}
}
int sortare ( int *v, int st, int dr, int poz)
{
if( st == dr)
return v[st];
int s = sortare_p ( v, st, dr), x;
x = s - st + 1;
if ( x >= poz)
return sortare(v, st, s , poz);
return sortare(v, s+1 , dr, poz-x);
}
int main()
{
ifstream in ( "sdo.in");
ofstream out ("sdo.out");
int n, i, k, *v, val;
in >> n >> k;
v = new int [n+1];
for ( i =0 ; i< n ; i++)
in >> v[i];
val = sortare (v, 0, n-1, k);
out << val;
in.close();
out.close();
return 0;
}