Pagini recente » Cod sursa (job #226796) | Cod sursa (job #647889) | Cod sursa (job #2700586) | Cod sursa (job #2141816) | Cod sursa (job #3297911)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005];
int merg(int n, int mid){
int rasp=1;
int suma=0;
for(int i=0;i<n;i++){
suma+=v[i];
if(suma>mid){
suma=v[i];
rasp++;
}
}
return rasp;
}
int main()
{
int n,k;
fin >> n >> k;
int suma_2=0;
int max_val=0;
for(int i=0;i<n;i++){
fin >> v[i];
suma_2+=v[i];
max_val=max(max_val,v[i]);
}
int c;
int lf=max_val;
int rg=suma_2;
while(lf<=rg){
int mid=(rg+lf)/2;
int nrsume=merg(n,mid);
if(nrsume<=k) {
rg=mid-1;
c=mid;
}
else
lf=mid+1;
}
fout << c << " ";
// int mid=9;
// fout << merg(n,mid);
return 0;
}