Pagini recente » Cod sursa (job #667166) | Cod sursa (job #540933) | Cod sursa (job #1170311) | Cod sursa (job #837993) | Cod sursa (job #981454)
Cod sursa(job #981454)
#include <fstream>
using namespace std;
int a[16005],n,k,s,maxim,m,st,dr,gr,gr2;
int main ()
{
ifstream in("transport.in");
in>>n>>k;
for (int i=1;i<=n;++i)
{
in>>a[i];
s=s+a[i];
if (a[i]>maxim) maxim=a[i];
}
in.close();
ofstream out ("transport.out");
st=maxim; dr=s;
while (st!=dr)
{
m=(st+dr)/2;
gr=0; gr2=0;
for (int i=1;i<=n;++i)
{
gr=gr+a[i];
if (gr>m)
{
gr=a[i];
++gr2;
}
}
if (gr2>=k) st=m+1; else dr=m;
}
out<<st;
out.close();
}