Cod sursa(job #3278932)

Utilizator Andrei1209Andrei Mircea Andrei1209 Data 21 februarie 2025 13:25:28
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>

using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
const int nmax = 100000;
long long v[nmax + 5], n, k;
bool verif(long long mij)
{
    long long i, cnt = 0;
    long long s = 0;
    for ( i = 1; i <= n; ++i )
    {
        s += min(mij, v[i]);
        if (s >= mij )
        {
            ++cnt;
            s -= mij;
        }
        if ( cnt >= k )
            return true;
    }
    return false;
}
int main()
{
    int i;
    fin >> k >> n;
    for ( i = 1; i <= n; ++i )
        fin >> v[i];

    long long st = 1, dr = 1e9 * 1e5, sol = -1, mij;
    while (st <= dr )
    {
        mij = (st + dr) / 2;
        if ( verif(mij) == true )
        {
            sol = mij;
            st = mij + 1;
        }
        else
            dr = mij - 1;
    }
    fout << sol << '\n';
    return 0;
}