Cod sursa(job #2911091)

Utilizator divadddDavid Curca divaddd Data 26 iunie 2022 19:22:58
Problema Grupuri Scor 98
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#define MAX 100002
using namespace std;
int n,k,v[MAX];

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

bool sePoate(int g){
    long long total = 0;
    for(int i = 1; i <= n; i++){
        total += 1LL*min(g, v[i]);
    }
    if(total >= g*k*1LL){
        return 1;
    }
    return 0;
}

int main()
{
    fin >> k >> n;
    long long s = 0;
    for(int i = 1; i <= n; i++){
        fin >> v[i];
        s += v[i];
    }
    /// 1 1 1 1 1 0 0 0 0 0
    ///         ^
    /// filtru = sePoate(poz)
    int ans = 0;
    int st = 1, dr = s/k;
    while(st <= dr){
        int mid = (st+dr)/2;
        if(sePoate(mid)){
            ans = mid;
            st = mid+1;
        }else{
            dr = mid-1;
        }
    }
    fout << ans;
    return 0;
}