Pagini recente » Cod sursa (job #586192) | Cod sursa (job #1201586) | Cod sursa (job #3213606) | Cod sursa (job #124609) | Cod sursa (job #3297910)
#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=0;
rasp++;
}
}
return rasp;
}
int main()
{
int n,k;
fin >> n >> k;
int suma_2=0;
int max_val;
for(int i=0;i<n;i++){
fin >> v[i];
suma_2+=v[i];
if(i==0)
max_val=v[0];
else
max_val=max(v[i-1],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;
else{
c=mid+1;
break;
}
}
fout << c << " ";
// int mid=9;
// fout << merg(n,mid);
return 0;
}