Cod sursa(job #2711830)

Utilizator Alex_tz307Lorintz Alexandru Alex_tz307 Data 24 februarie 2021 19:00:32
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
#define int long long

using namespace std;

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

const int NMAX = 1e5 + 1;
int N, K, a[NMAX];

bool check(const int &x) {
    int sum = 0;
    for(int i = 1; i <= N; ++i)
        sum += min(a[i], x);
    return sum >= x * K;
}

int32_t main() {
    fin >> K >> N;
    int st = 1, dr = 0, ans = 0;
    for(int i = 1; i <= N; ++i) {
        fin >> a[i];
        dr += a[i];
    }
    dr /= K;
    while(st <= dr) {
        int mid = (st + dr) >> 1;
        if(check(mid)) {
            ans = mid;
            st = mid + 1;
        }
        else
            dr = mid - 1;
    }
    fout << ans << '\n';
}