Pagini recente » Cod sursa (job #2602492) | Cod sursa (job #1251874) | Cod sursa (job #1952236) | Cod sursa (job #1690043) | Cod sursa (job #943899)
Cod sursa(job #943899)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int cap,i,j,n,k,mi,v[17000],ma,sol;
int check(int x);
int main ()
{
f>>n>>k;
for(i=1;i<=n;++i)
{
f>>v[i];
if(v[i]>mi)
mi=v[i];
ma+=v[i];
}
while(mi<=ma)
{
int m=(mi+ma)>>1;
if(!check(m))
mi=m+1;
else
ma=m-1,sol=m;
}
g<<sol;
return 0;
}
int check(int x)
{
i=j=0;
while(i<=k&&j<=n)
{
cap=0;
while(cap+v[j]<=x)
cap+=v[j],j++;
}
if(i<=k)
return 1;
return 0;
}