Pagini recente » Cod sursa (job #2958898) | Cod sursa (job #2354313) | Cod sursa (job #2479078) | Cod sursa (job #1321750) | Cod sursa (job #1583774)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16005];
int main()
{
int i,s=0,maxim=16001,n,st,dr,mij,s1=0,k;
f>>n>>k;
for(i=1;i<=n;i++) f>>v[i];
st=1;
dr=16000;
while(st<=dr)
{
mij=(st+dr)/2; s=0; s1=1;
for(i=1;i<=n;i++) { if(v[i]>mij)
{s1=160001;break;} if(s+v[i]<=mij) s+=v[i]; else s1++,s=v[i]; }
if(s1<=k)
{ if(mij<maxim) maxim=mij;
dr=mij-1;
}
else
{
st=mij+1;
}
}
g<<maxim;
f.close();
g.close();
return 0;
}