Pagini recente » Cod sursa (job #347237) | Cod sursa (job #976307) | Cod sursa (job #2032217) | Cod sursa (job #464384) | Cod sursa (job #2774692)
#include <bits/stdc++.h>
#define DIM 3000005
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int n, k, v[DIM], rez;
int solve(int st, int dr)
{
if(st < dr)
{
int pivot = st + (rand() % (dr - st + 1));
swap(v[pivot], v[dr]);
int i = st, j = st;
while(j < dr)
{
if(v[j] < v[dr])
swap(v[j], v[i]), i++;
j++;
}
swap(v[i], v[dr]);
if(i > k)
return solve(st, i - 1);
else if(i < k)
return solve(i + 1, dr);
else
return v[i];
}
return v[st];
}
int main()
{
f >> n >> k;
for(int i = 1; i <= n; i++)
f >> v[i];
g << solve(1, n);
return 0;
}