Pagini recente » Cod sursa (job #659820) | Cod sursa (job #1766091) | Cod sursa (job #345228) | Cod sursa (job #2456451) | Cod sursa (job #3326635)
#include <fstream>
using namespace std;
#define N 3000000
int v[N+1];
void quicks(int beg, int en, int k){
int b, e, piv;
b = beg;
e = en;
piv = v[(b + e) / 2];
while (v[b] < piv)
b++;
while (v[e] > piv)
e--;
while (b < e){
swap (v[b], v[e]);
do
b++;
while (v[b] < piv);
do
e--;
while (v[e] > piv);
}
if (beg < e && k <= e)
quicks(beg, e, k);
else if (e + 1 < en)
quicks(e + 1, en, k);
}
int main()
{
ifstream cin ("sdo.in");
ofstream cout ("sdo.out");
int n, k, i;
cin >> n >> k;
for (i=1; i<=n; i++)
cin >> v[i];
quicks(1, n, k);
for (i=1; i<=n; i++)
if (i == k)
cout << v[i] << ' ';
return 0;
}