Pagini recente » Cod sursa (job #1966921) | Cod sursa (job #120004) | Cod sursa (job #1287761) | Cod sursa (job #1099053) | Cod sursa (job #1029354)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
#define maxN 3000001
int n,k,v[maxN],rez;
int divide(int p,int q)
{
int st=p,dr=q,x=v[p];
while(st<dr)
{
while(st<dr && v[dr]>=x) dr--;
v[st]=v[dr];
while(st<dr && v[st]<=x) st++;
v[dr]=v[st];
}
v[st]=x;
return st;
}
void Statistic(int p,int q,int k)
{
int m=divide(p,q);
if(m==k) rez=v[m];
else if(m<k)
{
if(m+1<q) Statistic(m+1,q,k);
else rez=v[m+1];
}
else
{
if(m-1>p) Statistic(p,m-1,k);
else rez=v[m-1];
}
}
int main()
{
int i; f>>n; f>>k; rez=0;
for(i=1; i<=n ;i++)
f>>v[i];
Statistic(1,n,k);
g<<rez<<" ";
return 0;
}