Pagini recente » Cod sursa (job #804096) | Cod sursa (job #220427) | Cod sursa (job #1837617) | Cod sursa (job #2464855) | Cod sursa (job #856073)
Cod sursa(job #856073)
#include <iostream>
#include <fstream>
#define DN 16005
using namespace std;
int n,k,v[DN],ls,li;
ifstream f("transport.in");
ofstream g("transport.out");
int trucks(int max)
{
int rounds=0,S=0;
for(int i=1;i<=n;++i)
{
if(S+v[i]>max)
{
S=0;
++rounds;
}
S+=v[i];
}
if(S)
++rounds;
return rounds;
}
void caut_bin()
{
int mij,rez=-1;
while(li<=ls)
{
mij=(li+ls)/2;
if( trucks(mij) <=k )
{
rez=mij;
ls=mij-1;
}
else
li=mij+1;
}
g<<rez;
}
int main()
{
f>>n>>k;
for(int i=1;i<=n;++i)
{
f>>v[i];
ls+=v[i];
li=max(li,v[i]);
}
++ls;
caut_bin();
return 0;
}