Cod sursa(job #2910331)

Utilizator euyoTukanul euyo Data 19 iunie 2022 14:36:07
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define int long long

using namespace std;

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

using ll = long long;

const int DIM = 100005;

int cnt[DIM];
int n, k;

bool ok( int g ) {
  ll avb = 0;
  for ( int i = 1; i <= n; ++i ) {
	avb += min(g, cnt[i]);
  }
  return avb >= (ll)k * g;
}

signed main() {
  fin >> k >> n;
  for ( int i = 1; i <= n; ++i ) {
	fin >> cnt[i];
  }
  int l = 0, r = 1e12;
  while ( r - l > 1 ) {
    int mid = (l + r) / 2;
    if ( ok(mid) ) {
	  l = mid;  
	} else {
	  r = mid;
	}
  }
  if ( l > r ) swap(l, r);
  if ( ok(r) ) {
	fout << r;
  } else {
    fout << l;
  }
  fin.close();
  fout.close();
  return 0;
}