Pagini recente » Cod sursa (job #2048269) | Cod sursa (job #2148343) | Cod sursa (job #517630) | Cod sursa (job #2222917) | Cod sursa (job #1028334)
#include <fstream>
using namespace std;
int main(){
int n,k,ma=0,s,nr_dr,sum=0,*v,m;
ifstream f("transport.in");
f>>n>>k;
v=new int[n];
for(int i=0;i<n;++i){
f>>v[i];
sum+=v[i];
if(ma<v[i])
ma=v[i];
}
f.close();
while(ma<sum){
nr_dr=1;
s=0;
m=(ma+sum)>>1;
for(int i=0;i<n;++i)
if(s+v[i]<=m)
s+=v[i];
else{
s=v[i];
++nr_dr;
}
if(k<nr_dr)
ma=m+1;
else
sum=m;
}
delete v;
ofstream g("transport.out");
g<<ma;
g.close();
return 0;
}