Cod sursa(job #2396164)

Utilizator Iulia25Hosu Iulia Iulia25 Data 3 aprilie 2019 11:41:52
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;

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

long long a[100005], sp[100005];
int n, k;

bool check(int x)  {
  long long p = 0;
  for (int i = n - k + 1; i <= n; ++i)  {
    if (a[i] < x)
      p += x - a[i];
  }
  if (p <= sp[n - k])
    return true;
  return false;
}

int main()  {
  fin >> k >> n;
  for (int i = 1; i <= n; ++i)  {
    fin >> a[i];
    sp[i] = sp[i - 1] + a[i];
  }
  int st = 0, dr = sp[n] / k, mij, ans = 0;
  while (st <= dr)  {
    mij = (st + dr) / 2;
    if (check(mij))  {
      st = mij + 1;
      ans = mij;
    } else
      dr = mij - 1;
  }
  fout << ans;
  return 0;
}