Pagini recente » Cod sursa (job #2856773) | Cod sursa (job #391589) | Cod sursa (job #617189) | Cod sursa (job #2056299) | Cod sursa (job #2088485)
#include <iostream>
#include <fstream>
using namespace std;
int v[16000],a[16000];
ifstream in("transport.in");
ofstream out("transport.out");
int n,k;
bool p(int c){
int i,cc=c,nr;
for(i=0;i<n;i++){
if(v[i]>c)
return false;
if(v[i]>cc){
nr++;
cc=c;
}
cc-=v[i];
if(nr>k)
return false;
}
return true;
}
int main(){
int i,pas,r=0;
in>>n>>k;
for(i=0;i<n;i++)
in>>v[i];
pas=1<<27;
while(pas!=0){
if(!p(r+pas))
r+=pas;
pas/=2;
}
out<<r+1;
return 0;
}