Pagini recente » Cod sursa (job #2743697) | Cod sursa (job #2383518) | Cod sursa (job #1430696) | Cod sursa (job #1325827) | Cod sursa (job #2942989)
#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;
k--;
for(i = 0; i < n; i++)
{
fin >> v[i];
}
quickSort(0, n - 1);
fout << v[k];
return 0;
}