Pagini recente » Autentificare | Cod sursa (job #1551374) | Cod sursa (job #1603445) | Monitorul de evaluare | Cod sursa (job #2076585)
#include <iostream>
#include <fstream>
using namespace std;
int v[3000000];
ifstream in("sdo.in");
ofstream out("sdo.out");
int partition ( int st, int dr)
{ int aux;
int pivot = v[dr];
int i = (st - 1);
for (int j = st; j <= dr- 1; j++)
{
if (v[j] <= pivot)
{
i++;
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
}
aux=v[i+1];
v[i+1]=v[dr];
v[dr]=aux;
return (i + 1);
}
int quickSort( int st, int dr,int k)
{
if (st < dr)
{
int pi = partition( st, dr);
if(pi>k)return quickSort( st, pi - 1,k);
if(pi<k) return quickSort( pi + 1, dr,k-pi);
else if (pi==k)return v[pi];
}
}
int main()
{
int n,k;
in>>n>>k;
for(int i=1; i<=n; i++)in>>v[i];
out<<quickSort(1,n,k);
return 0;
}