Pagini recente » Borderou de evaluare (job #201146) | Borderou de evaluare (job #2091306) | Borderou de evaluare (job #3301237) | Profil Tudor_Iatagan2 | Cod sursa (job #3333167)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,i;
vector<int> v(16001);
int transport(int capacitate){
int nr=n;
int t=v[0];
for(i=1;i<n;i++){
t+=v[i];
if(t>capacitate) t=0;
else nr--;
}
return nr;
}
int main()
{
fin>>n>>k;
int s=0, mn=0;
for(i=0;i<n;i++) {
fin>>v[i];
s+=v[i];
if(v[i]<mn) mn=v[i];
}
int l=mn;
int r=s;
int mij;
vector<int> w(l+r+1);
for(i=l;i<=r;i++) w[i]=i;
do{
mij=(l+r)/2;
if(transport(w[mij])>k){
l=mij;
}
else r=mij;
}while(l<=r);
fout<<v[mij];
return 0;
}