Cod sursa(job #3148687)

Utilizator SimifilLavrente Simion Simifil Data 3 septembrie 2023 14:12:55
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <algorithm>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("grupuri.in");
ofstream g("grupuri.out");

long long k, n;
const int max_n = 1e5+2;
long long v[max_n];
long long s = 0;

long long minim(long long a, long long b)
{
    if( a < b )
        return a;
    else
        return b;
}

int main() {
    ios_base::sync_with_stdio(false);
    f.tie(nullptr);
    g.tie(nullptr);

    f >> k >> n;
    for( long long i = 1; i <= n; ++i )
    {
        f >> v[i];
        s+=v[i];
    }
    long long grup_max = s/k;
    long long st = 1, dr = grup_max, mij;
    long long ras = 0;
    while( st <= dr )
    {
        mij = (st + dr)/2;
        long long sum_aux = 0;
        for( int j = 1; j <= n; ++j )
        {
            sum_aux+=minim(mij, v[j]);
        }
        if( sum_aux >= mij*k )
        {
            ras = mij;
            st = mij + 1;
        }
        else
            dr = mij - 1;
    }
    g << ras;
    return 0;
}