Pagini recente » Cod sursa (job #619431) | Cod sursa (job #2542648) | Cod sursa (job #1275500) | Cod sursa (job #2163340) | Cod sursa (job #2842428)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k,vol,v[16005],st,dr,sol,NMAX,min1=16005;
int check(int x)
{
int cnt=0,suma=0;
for(int i=1;i<=n;i++)
{
suma+=v[i];
if(suma>x)
{
suma=v[i];
cnt++;
}
}
cnt++;
if(cnt<=k)
return 1;
else
return 0;
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>v[i];
NMAX+=v[i];
min1=min(min1,v[i]);
}
st=min1;
dr=NMAX;
while(st<=dr)
{
int mij=(st+dr)>>1;
if(check(mij)==1)
{
sol=mij;
dr=mij-1;
}
else
{
st=mij+1;
}
}
cout<<sol;
return 0;
}