Pagini recente » Istoria paginii preoni-2006/runda-4/clasament-11-12 | Cod sursa (job #2801384) | Cod sursa (job #1143570) | Cod sursa (job #1567531) | Cod sursa (job #1715919)
#include<stdio.h>
#include<bitset>
#include<algorithm>
#include<iostream>
#include<vector>
#include<time.h>
#include<fstream>
#define pb push_back
#define mp make_pair
#define fs first
#define sc second
#define MOD 1000000007
using namespace std;
int N,k,a[3000100];
void quicky(int l, int r) {
if(l >= r) return;
if(r == l+1) {
if(a[r] < a[l]) {
swap(a[l],a[r]);
}
return;
}
int piv = a[l + rand()%(r - l + 1)];
cout<<piv<<" ";
int st = l, dr = r;
while(true) {
while(a[st] < piv) ++st;
while(a[dr] > piv) --dr;
if(st < dr) swap(a[st],a[dr]);
else break;
}
if(dr >= k) {
quicky(l,dr);
} else {
quicky(dr+1,r);
}
}
int main() {
ifstream fin("sdo.in");
ofstream fout("sdo.out");
srand(time(0));
fin>>N>>k;
for(int i=1;i<=N;++i) {
fin>>a[i];
}
quicky(1,N);
fout<<a[k];
return 0;
}