Pagini recente » Cod sursa (job #2743822) | Cod sursa (job #1287023) | Cod sursa (job #65901) | Cod sursa (job #111803) | Cod sursa (job #1041586)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,v[16001];
int s,d;
int main()
{int i;
f>>n>>k;
for(i=1;i<=n;i++){
f>>v[i];
if(v[i]>s)s=v[i];
}
i=1;
d=s*2;
while(s<=d)
{int t=1,sum=0;
int m=(s+d)/2;
for(int i=1;i<=n;i++)
{
if(sum+v[i]>m){t++;
sum=v[i];
}
else sum+=v[i];
}
if(t<=k){d=m-1;}
else {s=m+1;}
}
g<<s;
f.close();
g.close();
}