Cod sursa(job #3175231)

Utilizator RaresStanStan Rares RaresStan Data 25 noiembrie 2023 14:21:17
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;
long long v[100005];
long long n, k;

bool verif(long long x) {
    long long s = 0;
    for (int i = 1; i <= n; i++)
        s += min(x, v[i]);
    if (s >= x * k)
        return true;
    else
        return false;
}

int main() {
    ifstream cin("grupuri.in");
    ofstream cout("grupuri.out");
    long long s = 0;
    cin >> k >> n;
    for (int i = 1; i <= n; i++) {
        cin >> v[i];
        s += v[i];
    }
    long long st = 0, dr = s / k, r = -1;
    while (st <= dr) {
        long long mid = (st + dr) / 2;
        if (verif(mid)) {
            r = mid;
            st = mid + 1;
        } else
            dr = mid - 1;
    }
    cout << r;
    return 0;
}