Pagini recente » Cod sursa (job #61553) | Cod sursa (job #680080) | Cod sursa (job #1794593) | Cod sursa (job #1099861) | Cod sursa (job #2596049)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int nmax=16000;
int v[nmax+1];
int n,k;
bool fct(int x){
int c=0,s=0;
for(int i=1;i<=n;++i){
s-=v[i];
if(s<0){
s=x-v[i];
++c;
}
}
return c<=k;
}
int main(){
fin>>n>>k;
int a=0,b=0;
for(int i=1;i<=n;++i){
fin>>v[i];
b+=v[i];
if(a<v[i]){
a=v[i];
}
}
int b2=1;
while(b2<=b){
b2*=2;
}
b2/=2;
int sol=b+1;
for(int i=b2;i>0;i/=2){
if(sol-i>=a&&fct(sol-i)==1){
sol-=i;
}
}
fout<<sol<<"\n";
return 0;
}