Cod sursa(job #3257148)

Utilizator Cyb3rBoltSbora Ioan-David Cyb3rBolt Data 16 noiembrie 2024 19:22:13
Problema Grupuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("grupuri.in");
ofstream fout("grupuri.out");
int n, k, v[100010];

inline int check(int x) {
    int poz = 1, cnt = 0;
    for(int i=n; i>=1; i--) {
        if(v[i] >= x) cnt++;
        else {
            poz += v[i];
            if(poz > x) cnt++, poz -= x;
        }
    }
    return (cnt >= k);
}

int main()
{
    fin >> k >> n;
    for(int i=1; i<=n; i++) fin >> v[i];
    int st = 0, dr = 2e9, sol = -1;
    while(st <= dr) {
        int mid = (st + dr) / 2;
        if(check(mid)) sol = max(sol, mid), st = mid + 1;
        else dr = mid - 1;
    }
    fout << sol;

    return 0;
}