Pagini recente » Cod sursa (job #310109) | Cod sursa (job #863909) | Cod sursa (job #2706932) | Cod sursa (job #252538) | Cod sursa (job #2669422)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, v[16001],i,st,dr,mij,bs,drum,k,sum;
bool solutie () {
//fout<<mij<<endl;
bs=0;
drum=0;
for(i=1;i<=n && drum<=k;i++)
{
bs+=v[i];
if(bs>mij)
{
//fout<<bs<<" ";
drum++;
bs=v[i];
if(v[i]>mij)
drum=k+1;
}
}
if(bs!=0)
drum++;
//fout<<drum<<endl;
if(drum<=k)
return 1;
else return 0;
}
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++){
fin>>v[i];
sum+=v[i];
}
st=1;
dr=sum;
while(st!=dr)
{
mij=(st+dr)/2;
if(solutie()==1)
dr=mij;
else
st=mij+1;
}
fout<<st;
return 0;
}