Pagini recente » Cod sursa (job #1907418) | Cod sursa (job #1979718) | Cod sursa (job #2885104) | Cod sursa (job #1275389) | Cod sursa (job #3257148)
#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;
}