Pagini recente » Cod sursa (job #99188) | Cod sursa (job #2699339) | Cod sursa (job #1338235) | Cod sursa (job #3030659) | Cod sursa (job #1019686)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long n,k,v[1000];
bool exista(long capacitate)
{
long i,nr=0,acum=0;
for(i=1;i<=n;i++)
{
if(capacitate-acum>=v[i])
acum=acum+v[i];
else
{
acum=0;
i--;
nr++;
}
}
if(nr<=k)
return true;
return false;
}
long search(long st,long dr)
{
if(st>dr)
return st;
long piv=(st+dr)/2;
if(exista(v[piv])==true)
return search( st,piv-1);
else
return search(piv+1,dr);
}
int main()
{
f>>n>>k;
long i,max,sum=0;
for(i=1;i<=n;i++)
{
f>>v[i];
sum=sum+v[i];
}
max=sum;
sum=sum/3;
g<<search(sum,max);
return 0;
}