Pagini recente » Cod sursa (job #2345340) | Cod sursa (job #3279280)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int nmax=16000;
int x[nmax+5],n,k,c;
int check(int value){
int Count=0,s=0;
for(int i=1;i<=n;i++){
if(s+x[i]<=value)
s+=x[i];
else{
s=x[i];
Count++;
}
}
Count++;
return (Count<=k);
}
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
fin>>x[i];
int left=1,right=16000*16000,sol=-1;
while(left<=right){
int mid=(left+right)/2;
if(check(mid)){
sol=mid;
right=mid-1;
}
else
left=mid+1;
}
fout<<sol<<"\n";
return 0;
}