Pagini recente » Cod sursa (job #2514083) | Cod sursa (job #2696007) | Cod sursa (job #2763014) | Cod sursa (job #2793608) | Cod sursa (job #2168813)
#include <bits/stdc++.h>
#define nrmax 16002
#define INF 0x3f3f3f3f
using namespace std;
ifstream input("transport.in");
ofstream print("transport.out");
int V[nrmax],n,k;
int capacitate(int x){
int s=0,ret=0;
for(int i=1;i<=n;++i){
if(V[i]>x)return INF;
else if(s+V[i]<=x)
s+=V[i];
else if(s+V[i]>x){
++ret;
s=V[i];
}
}
if(s<=x)++ret;
return ret;
}
int main(){
int st=1,dr=0,mij,ans=16000;
input>>n>>k;
for(int i=1;i<=n;++i){
input>>V[i];
dr+=V[i];
}
while(st<=dr){
mij=(st+dr)/2;
if(capacitate(mij)<=k){
ans=mij;
dr=mij-1;
}
else st=mij+1;
}
print<<ans;
return 0;
}