Pagini recente » Cod sursa (job #1417186) | Cod sursa (job #3240273) | Cod sursa (job #2594337) | Cod sursa (job #2083701) | Cod sursa (job #2772523)
#include<fstream>
using namespace std;
long long int v[16000];
int main(){
ifstream in("transport.in");
ofstream out("transport.out");
long long int n,k,st=0,dr=0,raspuns;
in>>n>>k;
for(long long int i=1;i<=n;i++){
in>>v[i];
dr+=v[i];
if(st<v[i]){
st=v[i];
}
}
while(st+1<dr){
long long int mij=(st+dr)/2,l=0,p=0;
for(long long int i=1;i<=n;i++){
if(l+v[i]<=mij){
l+=v[i];
}else{
l=v[i];
p++;
}
}
p++;
if(p<k){
dr=mij;
}else{
if(p==k){
raspuns=mij;
dr=mij;
}else{
st=mij;
}
}
}
out<<raspuns;
}