Pagini recente » Cod sursa (job #2652199) | Cod sursa (job #606337) | Cod sursa (job #2119290) | Cod sursa (job #1283661) | Cod sursa (job #1418616)
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,u,p,i,mid,maxim;
int v[16001];
int max(int a,int b){
if(a>=b)return a;
if(b>=a)return b;
}
int transport(int a){
int nr=1;
int s=0;
for(i=1;i<=n;i++){
if(s+v[i]<=a)
s+=v[i];
else{
nr++;
s=v[i];
}
}
return nr;
}
int main(){
fin>>n>>k;
for(i=1;i<=n;i++){
fin>>v[i];
u+=v[i];
maxim=max(maxim,v[i]);
}
p=maxim;
while(p<=u){
mid=(p+u)/2;
if(transport(mid)<=k)
u=mid-1;
else
p=mid+1;
}
fout<<p;
return 0;
}