Pagini recente » Cod sursa (job #2974768) | Cod sursa (job #2394952) | Cod sursa (job #2776115) | Cod sursa (job #561678) | Cod sursa (job #1294462)
#include <fstream>
#include <algorithm>
#define NMAX 3000001
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int v[NMAX],N,k;
int sort(int v[], int S, int F)
{
//[s..left-1]<p, [right-1..f]>p
int left=S, right=F;
int pivot=(S+F)>>1,valPivot=v[pivot];
swap(v[F],v[pivot]);
pivot=F;
int wall=S;
for(int i=S;i<F;i++)
if(v[i]<valPivot)
{
swap(v[wall],v[i]);
wall++;
}
swap(v[wall],v[pivot]);
if(wall==k) return v[k];
else
{
if(wall<k) return sort(v,wall+1,F);
else return sort(v,S,wall-1);
}
}
int main()
{
f>>N>>k;
for(int i=1;i<=N;i++)
f>>v[i];
g<<sort(v,1,N);
}