Pagini recente » Cod sursa (job #1832702) | Cod sursa (job #1344355) | Cod sursa (job #594294) | Cod sursa (job #2103533) | Cod sursa (job #3312657)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int se_poate(int c,int v[],int n) {
int t=1;
int suma=0;
int i;
for (i=1;i<=n;i++) {
if (suma+v[i]<=c)
suma=suma+v[i];
else {
t++;
suma=v[i];
}
}
return t;
}
int main()
{
int n,k,i,v[100],mid;
fin>> n >> k;
int st=0;
int dr=0;
for (i=1;i<=n;i++) {
fin>> v[i];
if (v[i]>st)
st=v[i];
dr=dr+v[i];
}
/// facem o cautare binara
while (st<dr) {
mid=(st+dr)/2;
if(se_poate(mid,v,n)<=k)
dr=mid;
else
st=mid+1;
}
fout<< st;
return 0;
}