Pagini recente » Cod sursa (job #824796) | Cod sursa (job #570402) | Cod sursa (job #1330310) | Cod sursa (job #2739406) | Cod sursa (job #2374777)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("transport.in");
ofstream out ("transport.out");
int v[16002],n;
int ver (int x){
int c=x-v[1];
int nr=1;
for(int i=2;i<=n;i++){
if(c>=v[i])
c-=v[i];
else{
nr++;
c=x-v[i];
}
}
return nr;
}
int main()
{
int k,i,s=0,maxx=-1,l,r,mij;
in>>n>>k;
for(i=1;i<=n;i++){
in>>v[i];
s+=v[i];
if(v[i]>maxx)
maxx=v[i];
}
l=maxx;
r=s;
while(l<=r){
mij=(l+r)/2;
if(ver(mij)>k)
l=mij+1;
else
r=mij-1;
}
out<<l;
return 0;
}