Pagini recente » Cod sursa (job #1048212) | Cod sursa (job #888655) | Cod sursa (job #2722080) | Cod sursa (job #2686014) | Cod sursa (job #742463)
Cod sursa(job #742463)
#include<iostream>
#include<fstream>
using namespace std;
int v[16001],n,k;
inline int camioane(int c)
{
int s,i,nr;
s=0;
nr=1;
for(i=1;i<=n;i++) {
if((s+v[i])<=c)
s=s+v[i];
else {
nr++;
s=v[i];
}
}
return nr;
}
inline int cautarebinara()
{
int p,q,min,nr,mij,i;
p=0;
q=0;
for(i=1;i<=n;i++) {
if(v[i]>p)
p=v[i];
q=q+v[i];
}
min=2000000000;
while(p<=q) {
mij=p+(q-p)/2;
nr=camioane(mij);
if(nr>k)
p=mij+1;
else if(nr<=k) {
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;
}