Pagini recente » Cod sursa (job #2958878) | Cod sursa (job #2098559) | Cod sursa (job #2559516) | Cod sursa (job #2178111) | Cod sursa (job #742420)
Cod sursa(job #742420)
#include<iostream>
#include<fstream>
using namespace std;
int v[16001],n,k;
inline int suma(int i)
{
if(i==0)
return 0;
else return v[i]+suma(i-1);
}
inline int camioane(int c)
{
int s,i,nr;
s=0;
nr=0;
for(i=1;i<=n;i++) {
if((s+v[i])<=c)
s=s+v[i];
else {
nr++;
s=v[i];
}
}
if(s)
nr++;
return nr;
}
inline int cautarebinara()
{
int p,q,min,nr,mij;
p=1;
q=2000000000;
min=2000000000;
while(p<=q) {
mij=(p+q)/2;
nr=camioane(mij);
if(nr>k)
p=mij+1;
else if(nr<=k) {
if(min>mij)
min=mij;
q=mij-1;
}
}
return min;
}
int main ()
{
int i;
ifstream f("transport.in");
ofstream g("transport.out");
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
f.close();
g<<cautarebinara();
g.close();
return 0;
}