Cod sursa(job #3235294)

Utilizator TomMMMMatei Toma TomMMM Data 16 iunie 2024 20:17:17
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#define N_max 100005
using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int len, n;
int nr[N_max];
long long nr_max;
void reading(){
    fin >> len >> n;
    for(int i = 1; i <= n; i++){ fin >> nr[i]; nr_max += nr[i];}
}
bool is_good(long long nr_grupe){
    long long S = 0;
    for(int i = 1; i <= n && S < nr_grupe * len; i++){
        S += min(1LL * nr[i], nr_grupe);
    }
    if(S >= nr_grupe  * len) return 1;
    return 0;
}

int main() {
    reading();
    long long L = 0, R = nr_max / len + 10;
    long long sol = 0;
    while(L <= R){
        int mij = (L + R) / 2;
        if(is_good(mij)){
            sol = mij;
            L = mij + 1;
        }else{
            R = mij - 1;
        }
    }
    fout << sol;
}