Pagini recente » Cod sursa (job #315929) | Cod sursa (job #473009) | Cod sursa (job #2008818) | Cod sursa (job #170569) | Cod sursa (job #1718549)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[16001],L=13;
bool sepoate(int cap) {
int a=k, sum=0,i;
for(i=1; i<=n; i++) {
if(a!=0)
if(sum<cap)
sum=sum+v[i];
else {
i--;
a--;
//sum=0;
sum=v[i];
}
else
return false;
}
return true;
}
void cautare() {
int pas=1<<L;
int i=0;
while(pas!=0) {
if(!sepoate(i+pas))
i+=pas;
pas/=2;
}
fout<<i+1;
}
int main() {
int i;
fin>>n>>k;
for(i=1; i<=n; i++)
fin>>v[i];
cautare();
}