Cod sursa(job #2909507)

Utilizator vlad2009Vlad Tutunaru vlad2009 Data 14 iunie 2022 01:15:42
Problema Grupuri Scor 36
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#define int long long

using namespace std;

const int MAX_N = 1e5;
int a[MAX_N + 1];
int k, n;

bool check(int guess) {
    int sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += min(a[i], guess);
    }
    return sum >= guess * k;
}

long long cb() {
    int st = 0, dr = (1LL << 60), sol = 0;
    while (st <= dr) {
        int mijl = (st + dr) / 2;
        if (check(mijl)) {
            sol = mijl + 1;
            st = mijl + 1;
        } else {
            dr = mijl - 1;
        }
    }
    return sol - 1;
}

signed main() {
    ifstream fin("grupuri.in");
    ofstream fout("grupuri.out");
    fin >> k >> n;
    for (int i = 1; i <= n; i++) {
        fin >> a[i];
    }
    long long answer = cb();
    fout << answer;
    return 0;
}