Cod sursa(job #3167293)

Utilizator Alexbora13Bora Ioan Alexandru Alexbora13 Data 10 noiembrie 2023 16:02:55
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
#define START ios::sync_with_stdio(false); fin.tie(NULL); fout.tie(NULL);
#define STOP fin.close(); fout.close(); return 0;
#define MAX 100000
#define NRMAX 2000000000
using namespace std;

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

long long nr, n, sum;
long long v[MAX+1];

bool sunt_smecher(long long m)
{
    long long cnt = 0, sum_loc=1;
    for(int i=1; i<=n; i++)
    {
        if(v[i]>=m)
            cnt++;
        else
        {
            sum_loc+=v[i];
            if(sum_loc>m)
                cnt++, sum_loc-=m;
        }
    }
    if(cnt>=nr)
        return 1;
    return 0;
}

int main()
{
    START
    fin >> nr >> n;
    for(int i=1; i<=n; i++)
    {
        fin  >> v[i];
        sum+=v[i];
    }
    int div = sum/nr;
    int st = 1, dr = NRMAX+1;
    while(st<=dr)
    {
        int mij = (st+dr)/2;
        if(sunt_smecher(mij)==1)
            st = mij+1;
        else
            dr = mij-1;
    }
    fout << dr;
    STOP
}