Cod sursa(job #2736675)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 3 aprilie 2021 19:17:34
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");

int n, k, i, a[100005], st, dr, mid;
long long s;
int verifica(int x) {
    long long sum = 0;
    for (int i = 1; i <= n; i++)
        sum += min(a[i], x);
    if (sum >= 1LL * x * k)
        return 1;
    return 0;
}
int main(){
    fin >> k >> n;
    for(i = 1; i <= n; i++) {
        fin >> a[i];
        s += a[i];
    }
    dr = s / k;
    st = 1;
    while ( st <= dr ){
        mid = (st + dr) / 2;
        if (verifica(mid) == 1)
            st = mid + 1;
        else
            dr = mid - 1;
    }
    fout << dr << "\n";
    return 0;
}