Pagini recente » Cod sursa (job #306387) | Cod sursa (job #1180317) | Cod sursa (job #2315913) | Cod sursa (job #549772) | Cod sursa (job #1105170)
#include<iostream>
#include<fstream>
#define Nmax 3000001
using namespace std;
long long M[Nmax];
long long QuickSelect(long p, long u, long K) {
long pivot = M[rand() % (u - p + 1) + p];
long i = p;
long j = u;
while (i < j) {
if (M[i] == pivot) {
swap(M[i],M[j]);
}
if (M[i] > pivot) {
swap(M[i],M[j]);
j--;
} else {
i ++;
}
}
if (i > K) {
return QuickSelect(p,i-1,K);
} else if (i < K) {
return QuickSelect(i+1,u,K);
} else {
return M[i];
}
}
int main() {
ifstream f("sdo.in");
ofstream g("sdo.out");
long long N,K;
f>>N;
f>>K;
for(int i = 0; i < N; i++) {
f>>M[i];
}
g<<QuickSelect(0,N-1,K-1);
f.close();
g.close();
return 0;
}