Pagini recente » Cod sursa (job #1589591) | Cod sursa (job #2685603) | Cod sursa (job #2891678) | Cod sursa (job #625416) | Cod sursa (job #1990982)
#include <fstream>
#include <stdio.h>
using namespace std;
ifstream fi("transport.in");
ofstream fo("transport.out");
int n,k,i,c,S[16001],mij,st,dr,maxim,s;
int numara(int val)
{
int i=1,sum=0,trans=1;
for(i=1;i<=n;i++)
{
sum+=S[i];
if(sum>val)
{
trans++;
sum=S[i];
}
}
return trans;
}
int main()
{
fi>>n>>k;
for(i=1;i<=n;i++)
{
fi>>S[i];
s+=S[i];
if(maxim<S[i])
maxim=S[i];
}
st=maxim;
dr=s;
while(st<=dr)
{
mij=(st+dr)/2;
if(numara(mij)<=k)
{
c=mij;
dr=mij-1;
}
else
st=mij+1;
}
fo<<c;
fi.close();
fo.close();
return 0;
}