Pagini recente » Cod sursa (job #2911264) | Cod sursa (job #1665587) | Cod sursa (job #3253314) | Cod sursa (job #1782844) | Cod sursa (job #3263606)
#include <bits/stdc++.h>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[1004];
int n,k;
int cal(int x)
{
int cnt=0;
int camion=0;
for(int i=0;i<n-1;i++)
{
if(camion+v[i]<=x)
{
camion+=v[i];
}
else{
cnt++;
camion=v[i];
}
}
if(camion+v[n-1]>x)
{
cnt=cnt+2;
}
else{
cnt++;
}
return cnt;
}
int main(){
in>>n>>k;
int nmax=0;
for(int i=0;i<n;i++)
{
in>>v[i];
if(nmax<v[i])
{
nmax=v[i];
}
}
int st=nmax,dr=1000000;
int res=1000000;
while(st<=dr)
{
int mid=(st+dr)/2;
int sum=cal(mid);
if(sum<=k)
{
res=mid;
dr=mid-1;
}
else{
st=mid+1;
}
}
out<<res;
return 0;
}