Pagini recente » Cod sursa (job #2542923) | Cod sursa (job #1136378) | Cod sursa (job #3207234) | Cod sursa (job #2814777) | Cod sursa (job #2353421)
#include <bits/stdc++.h>
#define NMAX 16001
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
int n , k , i , mini = NMAX;
int a[NMAX];
bool ok(int c){
int ko = k , cc = c;
for(i=1;i<=n;i++)
if(a[i] <= cc)
cc -= a[i];
else{
ko--;
if(ko <= 0)return false;
cc = c - a[i];
}
return true;
}
int cautare_bin()
{
int mij = 0, st = 1 , dr = NMAX * NMAX;
while(st <= dr)
{
mij = (dr - st)/ 2 + st;
if(ok(mij))mini = mij , dr = mij - 1;
else st = mij + 1;
}
return mini;
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)f>>a[i];
g<<cautare_bin();
return 0;
}