Pagini recente » Cod sursa (job #2032583) | Cod sursa (job #965400) | Cod sursa (job #1471835) | Cod sursa (job #713549) | Cod sursa (job #2277116)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
const int N = 3000001;
int n, v[N], k;
int partitie (int v[], int st, int dr) {
int pivot = v[dr];
int i = st;
for(int j = st; j < dr; j ++) {
if(v[j] <= pivot) {
i ++;
swap (v[i], v[j]);
}
}
swap (v[i], v[dr]);
return i;
}
void sdo (int v[], int st, int dr) {
if(st < dr) {
int part = partitie (v, st, dr);
if(k == part)
return;
if(k > part)
sdo (v, part + 1, dr);
else
sdo (v, st, part - 1);
}
}
void afisare (int v[]) {
for(int i = 1; i <= n; i ++)
g << v[i] << ' ';
}
int main()
{
f >> n >> k;
for(int i = 1; i <= n; i ++)
f >> v[i];
sdo (v, 1, n);
g << v[k];
return 0;
}