Pagini recente » Cod sursa (job #2987312) | Cod sursa (job #996525) | Cod sursa (job #936899) | Cod sursa (job #1740599) | Cod sursa (job #1345784)
#include<fstream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int n, k, i, p, aux, x;
int v[3000001];
void poz(int st, int dr, int k){
if(st < dr){
int ii = 0, jj = -1, i = st, j = dr, aux;
int x = rand() % (dr - st) + st;
aux = v[i];
v[i] = v[x];
v[x] = aux;
while(i < j){
if(v[j] < v[i]){
aux = v[i];
v[i] = v[j];
v[j] = aux;
aux = ii;
ii = -jj;
jj = -aux;
}
i += ii;
j += jj;
}
if(i == k){
p = k;
}
else{
if(i < k){
poz(i + 1, dr, k);
}
else{
poz(st, i - 1, k);
}
}
}
}
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int main(){
srand(time(0));
fin>> n >> k;
for(i = 1; i <= n; i++){
fin>> v[i];
}
poz(1, n, k);
fout<< v[p];
return 0;
}