Pagini recente » Cod sursa (job #2112826) | Cod sursa (job #1849283) | Cod sursa (job #1069771) | Cod sursa (job #283296) | Cod sursa (job #2942983)
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
#define Nmax 3000000
int v[Nmax], k;
void quickSort(int begin, int end)
{
int pivot = v[begin + rand() % (end - begin)];
int b = begin, e = end;
while(v[b] < pivot)
{
b++;
}
while(v[e] > pivot)
{
e--;
}
while(b < e)
{
swap(v[b], v[e]);
do
{
b++;
} while(v[b] < pivot);
do
{
e--;
} while(v[e] > pivot);
}
if(begin < e && k < e)
{
quickSort(begin, e);
}
else if(e + 1 < end)
{
quickSort(e + 1, end);
}
}
int main()
{
int n, i;
fin >> n >> k;
for(i = 0; i < n; i++)
{
fin >> v[i];
}
quickSort(0, n - 1);
fout << v[k];
return 0;
}