Pagini recente » Borderou de evaluare (job #2243312) | Cod sursa (job #1345582) | Cod sursa (job #1324278) | Cod sursa (job #922419) | Cod sursa (job #1017037)
#include <fstream>
using namespace std;
ifstream cin("sdo.in");
ofstream cout("sdo.out");
long n, v[3000001], i, k;
int stat(long v[], long st, long dr, long k)
{
long i=st, j=dr;
if(i==j) return v[i];
long piv = v[(st+dr)/2];
while (i <= j)
{
while (v[i] < piv) i++;
while (v[j] > piv) j--;
if (i <= j)
{
swap(v[i],v[j]);
i++;
j--;
}
}
if (k < i) return stat(v, st, i-1, k);
if (j < k) return stat(v, j+1, dr, k);
}
int main()
{
cin>>n>>k;
for (i=1; i<=n; i++) cin>>v[i];
cout<<stat(v, 1, n, k);
return 0;
}