Pagini recente » Cod sursa (job #37440) | Cod sursa (job #340358) | Cod sursa (job #619206) | Cod sursa (job #2850808) | Cod sursa (job #2408111)
#include<fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[16001];
bool cam_ok(int C){
int nr_trans=0,c=0,i=1;
while(i<=n){
while(c+v[i]<=C && i<=n){
c+=v[i];
i++;
}
nr_trans++;
c=0;
}
if(nr_trans<=k) return true;
return false;
}
int main(){
int max=0,sum=0;
fin>>n>>k;
for(int i=1;i<=n;++i){
fin>>v[i];
if(v[i]>max)
max=v[i];
sum+=v[i];
}
int st=max,dr=sum,mij,poz=-1;
while(st<=dr){
mij=(st+dr)/2;
if(cam_ok(mij))
{
poz=mij;
dr=mij-1;
}
else
st=mij+1;
}
fout<<poz;
fin.close();
fout.close();
return 0;
}