Pagini recente » Cod sursa (job #1347508) | Cod sursa (job #1312178) | Cod sursa (job #2651580) | Cod sursa (job #3271869) | Cod sursa (job #1203705)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream o("transport.out");
int a[20000],n,k;
int binary(int l,int r){
if(l==r)return r;
int m=(l+r)/2;
int nr=0,v=0;
for(int i=1;i<=n;i++)
if(a[i]>m){
nr=k+1;
break;
}else
if(v+a[i]>m){
nr++;
v=a[i];
}else{
v+=a[i];
}
nr++;
if(nr<=k)return binary(l,m);
else return binary(m+1,r);
}
int main(){
f>>n>>k;
for(int i=1;i<=n;i++)f>>a[i];
o<<binary(1,16000);
}