Cod sursa(job #1651436)

Utilizator hrazvanHarsan Razvan hrazvan Data 13 martie 2016 12:30:25
Problema Grupuri Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#define MAXN 100000
int v[MAXN];

inline long long min2(long long a, int b){
  return a < b ? a : b;
}

inline char bun(long long rez, int n, int k){
  long long sum = 0;
  int i;
  for(i = 0; i < n; i++)
    sum += min2(rez, v[i]);
  if(sum / k >= rez)
    return 1;
  return 0;
}

int main(){
  FILE *in = fopen("grupuri.in", "r");
  int k, n, i;
  fscanf(in, "%d%d", &k, &n);
  for(i = 0; i < n; i++)
    fscanf(in, "%d", &v[i]);
  fclose(in);
  long long rez = 0, pas;
  for(pas = (1LL << 36); pas > 0; pas >>= 1){
    if(bun(rez + pas, n, k))
      rez += pas;
  }
  FILE *out = fopen("grupuri.out", "w");
  fprintf(out, "%d", rez);
  fclose(out);
  return 0;
}