Cod sursa(job #2924456)

Utilizator NanuGrancea Alexandru Nanu Data 2 octombrie 2022 20:34:19
Problema Grupuri Scor 82
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream fin("grupuri.in");
ofstream fout("grupuri.out");

#define DIM 100000

int n, k, v[DIM + 1];
long long s;

static inline bool Check(int mid) {
  int total = 0;  
  for(int i = 1; i <= n; i++)
    total += min(v[i], mid);  //nu pot pune mai mult de mid animale in mid grupuri

  return (total >= mid * k);  
}

int main() {
  fin >> k >> n;
  for(int i = 1; i <= n; i++) {
    fin >> v[i];
    s += v[i];
  }

  int st = 1, dr = s / k, poz = 0; 
  //cea mai mare pozitie(cel mai mare nr de grupuri);
  while(st <= dr) {
    int mid = (st + dr) >> 1;
    if(Check(mid)) {
      poz = mid;
      st = mid + 1; 
    }else dr = mid - 1;
  }

  fout << poz;

  return 0;
}