Pagini recente » Cod sursa (job #1647689) | Cod sursa (job #2573102) | Cod sursa (job #2388899) | Cod sursa (job #1352202) | Cod sursa (job #1726859)
#include <fstream>
#define DIM 16000
using namespace std;
int n,k,v[DIM];
bool isOk(int c) {
int tr=0,sum=0;
for(int i=0;i<n;i++) {
if(sum+v[i]<=c)
sum+=v[i];
else
sum=v[i],tr++;
if(tr>k)
return false;
}
if(sum!=0&&tr==k)
return false;
return true;
}
int main()
{
ifstream fin("transport.in");
ofstream fout("transport.out");
fin>>n>>k;
int st=0,dr=0,mij,ans=0;
for(int i=0;i<n;i++) {
fin>>v[i];
st=max(st,v[i]);
dr+=v[i];
}
while(st<=dr) {
mij=(st+dr)/2;
if(isOk(mij)) {
ans=mij;
dr=mij-1;
}
else
st=mij+1;
}
fout<<ans;
return 0;
}