Pagini recente » Cod sursa (job #2755861) | Cod sursa (job #2255000) | Cod sursa (job #1560390) | Cod sursa (job #2155920) | Cod sursa (job #1801090)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int i,n,sum,v[16001],nr,k,p,mare,m;
bool gicu(int s)
{
nr=1;
sum=0;
for(i=1;i<=n;++i)
{
sum+=v[i];
if(sum>s) {++nr;sum=v[i];}
if(nr>k)return 0;
}
return 1;
}
int main()
{
f>>n>>k;
for(i=1;i<=n;++i) {f>>v[i];p+=v[i];if(v[i]>mare)mare=v[i];}
while(mare<=p)
{
m=(mare+p)/2;
if(gicu(m)) p=m-1;
else mare=m+1;
}
g<<mare;
return 0;
}