Cod sursa(job #2603474)

Utilizator mirceamaierean41Mircea Maierean mirceamaierean41 Data 20 aprilie 2020 02:17:58
Problema Grupuri Scor 64
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

const int NMAX = 100002;

int a[NMAX], n, k;

bool check(int val)
{
    unsigned long long s = 0;
    for (int i = n; i ; --i)
        s += min(val, a[i]);

    if (s / val >= k)
        return 1;

    return 0;
}

int main()
{
    fin >> k >> n;

    for (int i = 1; i <= n; ++i)
        fin >> a[i];
    
    int r = 0, st = 1, dr = a[n];
    while (st <= dr)
    {
        int mij = (st + dr) >> 1;
        if (check(mij))
        {
            if (mij > r)
                r = mij;
            st = mij + 1;
        }
        else dr = mij - 1;
    }

    fout << r << "\n";

    fout.close();
    return 0;
}