Pagini recente » Cod sursa (job #2139676) | Cod sursa (job #585832) | Borderou de evaluare (job #1639968) | Cod sursa (job #300424) | Cod sursa (job #3279288)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
bool ok(int v[],int n,int m,int k){
int c=0,nr=0;
for(int i=0;i<n;i++){
if(c+v[i]<=m){c+=v[i];}
else{c=v[i];nr++;if(i==n-1){nr++;}}
}
if(nr<=k){return true;}return false;
}
int main(){
ifstream in("transport.in");ofstream out("transport.out");
int n,k,m=0,s=0;in>>n>>k;int v[n];
for(int i=0;i<n;i++){in>>v[i];if(v[i]>m){m=v[i];}s+=v[i];}
for(;m<=s;m++){
if(ok(v,n,m,k)){out<<m;break;}
}
return 0;
}