Pagini recente » Cod sursa (job #250496) | Cod sursa (job #2909364) | Cod sursa (job #674500) | Cod sursa (job #341124) | Cod sursa (job #2107422)
#include<bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define fi first
#define se second
#define sz size
#define pb push_back
#define mp make_pair
#define bg begin
#define nd end
using namespace std;
const int maxn = 100003;
const int maxk = 1003;
int n,k;
int a[maxn];
bool check(int x) {
int sum = 0;
int rest = 0;
int adder = 0;
for(int i=0;i<n;++i) {
adder = a[i];
if(adder > x) adder = x;
sum += (rest + adder) / x;
rest = (rest + adder) % x;
if(sum >= k) return true;
}
return false;
}
int32_t main(){
freopen("grupuri.in","r",stdin);
freopen("grupuri.out","w",stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> k >> n;
int total = 0;
for(int i=0;i<n;++i) {
cin >> a[i];
total += a[i];
}
int lo = 0;
int hi = total / k;
while(hi - lo > 1) {
// cout << lo << ' ' << hi << '\n';
int mid = (lo + hi) / 2;
if(check(mid))
lo = mid;
else
hi = mid;
}
if(check(hi))
cout << hi << '\n';
else
cout << lo << '\n';
return 0;
}