Pagini recente » Cod sursa (job #2930741) | Cod sursa (job #403890) | Cod sursa (job #2632938) | Cod sursa (job #584745) | Cod sursa (job #1018844)
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define N 3000010
using namespace std;
int a[3][N];
int main()
{
freopen("sdo.in","r",stdin);
int n, k;
scanf("%d %d\n",&n,&k);
for(int i = 1; i <= n; ++i)
scanf("%d",&a[0][i]);
fclose(stdin);
bool gasit = false;
int sol;
srand(time(NULL));
while(!gasit)
{
int mij = rand()%n+1;
a[1][0]=a[2][0] = 0;
for(int i = 1; i <= n; ++i)
if(a[0][i] <= a[0][mij])a[1][++a[1][0]] = a[0][i];
else a[2][++a[2][0]] = a[0][i];
if(k == a[1][0])
{
sol = a[0][mij];
gasit = true;
}
else if(k > a[1][0])
{
k -= a[1][0];
n = a[2][0];
for(int i = 1; i <= n; ++i)
a[0][i] = a[2][i];
}
else {
n = a[1][0];
for(int i = 1; i <= n; ++i)
a[0][i] = a[1][i];
}
}
freopen("sdo.out","w",stdout);
printf("%d",sol);
fclose(stdout);
return 0;
}