Cod sursa(job #2414566)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 24 aprilie 2019 18:54:22
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 100005;
int a[NMAX],k,n;

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

bool verif(long long nr)
{
    long long sum=0;
    for(int i=1;i<=n;i++)
        sum+=minim(nr,a[i]);
    if(nr*k<=sum) return 1;
    return 0;
}

int main()
{
    fin >> k >> n;
    long long sum=0;
    for(int i=1;i<=n;i++)
    {
        fin >> a[i];
        sum+=a[i];
    }
    long long st=1,dr=sum,mij,rasp;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(verif(mij)==1)
        {
            st=mij+1;
            rasp=mij;
        }
        else dr=mij-1;
    }
    fout << rasp;
    return 0;
}