Cod sursa(job #2335636)

Utilizator PetrescuAlexandru Petrescu Petrescu Data 4 februarie 2019 13:08:08
Problema Grupuri Scor 66
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#define MAX 100001

using namespace std;

int v[MAX];
int main()
{
    int k, n, i, suma, st, dr, mij, gasit;

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

    fin >> k >> n;

    suma = 0;
    for(i = 1; i <= n; i++)
    {
        fin >> v[i];
        suma += v[i];
    }

    st = 1;
    dr = suma;

    while(st <= dr)
    {
        mij = (st + dr) / 2;

        suma = 0;
        for(i = 1; i <= n; i++)
            suma += min(v[i], mij);

        if(mij * k <= suma)
        {
            gasit = mij;
            st = mij + 1;
        }
        else dr = mij - 1;
    }

    fout << gasit;

    fin.close();
    fout.close();

    return 0;
}