Pagini recente » Autentificare | Cod sursa (job #2442725) | Cod sursa (job #1909476) | Cod sursa (job #2667798) | Cod sursa (job #3219968)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,k,maxi=-100,v[16001],sol;
bool verif(int capat)
{
long long suma=0,transp=1,i;
for(i=1;i<=n;i++)
{
if(suma+v[i]<=capat) suma+=v[i];
else { suma=v[i]; transp++; }
}
return (transp<=k);
}
int main()
{
long long i,j,s=0;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
s+=v[i];
if(v[i]>maxi) maxi=v[i];
}
long long st=maxi,dr=s;
while(st<=dr)
{
int mij=(st+dr)/2;
if(verif(mij))
{
sol=mij;
dr=mij-1;
}
else st=mij+1;
}
fout<<sol;
return 0;
}