Pagini recente » Cod sursa (job #880373) | Cod sursa (job #2238674) | Cod sursa (job #3130681) | Cod sursa (job #993730) | Cod sursa (job #1105185)
#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[i+1]);
}
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];
}
cout<<QuickSelect(0,N-1,K-1);
f.close();
g.close();
return 0;
}