Pagini recente » Cod sursa (job #1735517) | Cod sursa (job #2265445) | Cod sursa (job #1419314) | Cod sursa (job #2250544) | Cod sursa (job #2018527)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,x,rasp;
vector <int>v;
bool incape(int sz)
{
int nrtrans=1,sum=0;
for(int i=1; i<=n; i++)
{
if(sum+v[i]<=sz)
sum+=v[i];
else
{
nrtrans++;
sum=v[i];
}
}
return(nrtrans<=k);
}
int main()
{
in>>n>>k;
int sum=0;
v.push_back(-1);
for(int i=1; i<=n; i++)
{
in>>x;
v.push_back(x);
sum+=x;
}
int l=1;
int r=sum;
while(r>=l)
{
int m=(l+r)/2;
if(incape(m))
{
r=m-1;
rasp=m;
}
else
{
l=m+1;
}
}
out<<rasp;
}