Cod sursa(job #3366711)

Utilizator TimofeiFilipTimofei Filip Emanuel TimofeiFilip Data 3 octombrie 2026 16:18:19
Problema Poligon Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
using namespace std;

const int NMAX = 1e6 + 10;
typedef long long int ll;

ll s[NMAX];

bool verify(const ll &middle, const ll &n, const ll &k) {
    ll suma = 0;
    for (int i = 1; i <= n; i++)
        suma += min(s[i], middle);
    return (suma >= middle * k * 1ll);
}

int main() {
    freopen("grupuri.in", "r", stdin);
    freopen("grupuri.out", "w", stdout);

    ll k, n; scanf("%lld %lld", &k, &n);
    for (int i = 1; i <= n; i++)
        scanf("%lld", &s[i]);

    ll left = 1;
    ll right = 2e10;
    ll answer = 1;
    while (left <= right) {
        ll middle = (left + right) / 2;
        if (verify(middle, n, k)) {
            left = middle + 1;
            answer = middle;
        }
        else
            right = middle - 1;
    }
    printf("%lld\n", answer);
    return 0;
}