Pagini recente » Cod sursa (job #2121147) | Cod sursa (job #1667365) | Cod sursa (job #2862897) | Cod sursa (job #566316) | Cod sursa (job #1555427)
#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
long long n,k,v[16009],st,dr;
int get_nr(int cap)
{
long long act=0,nr=1;
for(int i=1;i<=n;i++)
{
act=act+v[i];
if(act>cap){act=v[i];++nr;}
}
return nr;
}
int main()
{ int sol;
//k transporturi,C decimetri cubi
in>>n>>k;
in>>v[1];
st=v[1];
dr=v[1];
for(long long i=2;i<=n;i++)
{in>>v[i];
st=max(st,v[i]);
dr=dr+v[i];
}
while(st<=dr)
{ long long med=(st+dr)/2;
if(get_nr(med)>k)st=med+1;
else {dr=med-1;}
}
out<<st;
return 0;
}