Pagini recente » Cod sursa (job #118329) | Cod sursa (job #647717) | Cod sursa (job #7234) | Cod sursa (job #879292) | Cod sursa (job #1801111)
#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
long long n, k, u, a[16001], p, m, i;
int verif (int m)
{
int s=0, nr=0;
for (int i=n; i>0; i--){
if (s+a[i]<=m) s+=a[i];
else{
s=a[i];
nr++;
}
}
nr++;
if (nr<=k) return 1;
return 0;
}
int main ()
{
f >> n >> k;
u=0;
for (i=n; i>0; i--)
f >> a[i], u+=a[i];
p=1;
while (p<=u){
m=p+(u-p)/2;
if (verif(m)) u=m-1;
else p=m+1;
}
g << p;
}