Mai intai trebuie sa te autentifici.
Cod sursa(job #1220454)
Utilizator | Data | 17 august 2014 13:49:35 | |
---|---|---|---|
Problema | Statistici de ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.77 kb |
#include <iostream>
#include <cstdio>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <fstream>
using namespace std;
int n, k, a[3000010];
void qs(int l, int r) {
int i = l, j = r, p = a[(l+r)/2];
while (i <= j) {
while (a[i] < p) i++;
while (a[j] > p) j--;
if (i <= j) {
swap(a[i], a[j]);
i++;
j--;
}
}
if (i < r && k >= i) qs(i, r);
if (j > l && k <= j) qs(l, j);
}
int main() {
int x, y;
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
qs (1, n);
printf("%d\n", a[k]);
return 0;
}