Cod sursa(job #1428166)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 3 mai 2015 19:55:48
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

#define MAX_N 3000000

int v[MAX_N], n;
inline int lowerCount(int val) {
  int cnt = 0;
  
  for (int i = 0; i < n; i++) {
    cnt = cnt + (v[i] <= val);
  }
  return cnt;
}
int main(void) {
  FILE *f = fopen("sdo.in", "r");
  int k;
  int step;
  int 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) {
    if (lowerCount(pos + step) < k) {
      pos = pos + step;
    }
    step >>= 1;
  }
  f = fopen("sdo.out", "w");
  fprintf(f, "%d\n", pos + 1);
  fclose(f);
  return 0;
}