Pagini recente » Cod sursa (job #1889971) | Cod sursa (job #323611) | Cod sursa (job #1028395) | Cod sursa (job #2408552) | Cod sursa (job #2309817)
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
#define N 16001
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int a[N],n;
ll cacat(int c){
int s=0,j=1,i;
for(i=1; i<=n; ++i){
if(s+a[i]>c)
++j, s=0;
s+=a[i];
}
return j;
}
int main(){
int k,pas=1<<30,r=0,m=0,i;
in>>n>>k;
for(i=1; i<=n; ++i)
in>>a[i], m=max(m,a[i]);
while(pas){
if(cacat(r+pas)>k || r+pas<m)
r+=pas;
pas/=2;
}
out<<r+1;
return 0;
}