Pagini recente » Cod sursa (job #459537) | Cod sursa (job #759993) | Cod sursa (job #1235447) | Cod sursa (job #335916) | Cod sursa (job #3229175)
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[16001],st,dr,mij,aux;
bool verif(int mij)
{
int nrtrans=1; int sum=v[1];
for(int i=2;i<=n;i++)
{
if(sum+v[i]>mij)
{
nrtrans++;
sum=v[i];
}
else
sum=sum+v[i];
}
if(nrtrans>k)
return 0;
return 1;
}
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
{
fin>>v[i];
if(v[i]>st) st=v[i];
dr=dr+v[i];
}
while(st<=dr)
{
mij=(st+dr)/2;
if(verif(mij)==1)
{
aux=mij;
dr=mij-1;
}
else
st=mij+1;
}
fout<<aux;
}