Pagini recente » Cod sursa (job #1862935) | Cod sursa (job #1460559) | Cod sursa (job #2520855) | Cod sursa (job #1638326) | Cod sursa (job #1428292)
#include <stdio.h>
#define MAX_N 3000000
int v[MAX_N];
int n, k;
inline int countLower(int a) {
int cnt = 0;
int i = 0;
while ((i < n) && (cnt < k)) {
cnt = cnt + (v[i] <= a);
i++;
}
return (cnt < k);
}
int main(void) {
FILE *f = fopen("sdo.in", "r");
int step, pos;
fscanf(f, "%d%d", &n, &k);
for (int i = 0; i < n; i++) {
fscanf(f, "%d", &v[i]);
}
fclose(f);
step = (1 << 29);
pos = 0;
while (step) {
pos = pos + (step & (-countLower(pos + step)));
step = (step >> 1);
}
f = fopen("sdo.out", "w");
fprintf(f, "%d\n", pos + 1);
fclose(f);
return 0;
}