Pagini recente » Cod sursa (job #739466) | Cod sursa (job #1316056) | Cod sursa (job #621884) | Cod sursa (job #144006) | Cod sursa (job #1287944)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream ka("sdo.in");
ofstream ki("sdo.out");
const int N_MAX = 3000000;
int n, k, v[N_MAX + 1];
int quicksort(int inc, int sf)
{
int f = inc;
if(inc < sf)
{
int p = inc + rand()%(sf - inc + 1);
swap(v[p], v[sf]);
for(int i = inc; i < sf; i++)
if(v[i] <= v[sf])
{
swap(v[i], v[f]);
f++;
}
swap(v[f], v[sf]);
}
if(f == k)
return v[f];
else if(f < k)
return quicksort(f + 1, sf);
else
return quicksort(inc, f - 1);
}
int main()
{
ka >> n >> k;
for(int i = 1; i <= n; i++)
ka >> v[i];
ki << quicksort(1, n);
}