Pagini recente » Cod sursa (job #1693413) | Cod sursa (job #94196) | Cod sursa (job #1145486) | Cod sursa (job #2085704) | Cod sursa (job #2889980)
#include <fstream>
using namespace std;
int const inf=256000000;
int v[16005],n,k;
int check(int c)
{
int i,sum=0,nr=0;
for(i=1; i<=n; i++)
{
if(v[i] > c)
{
nr = inf;
break;
}
sum += v[i];
if(sum > c)
{
nr++;
sum = v[i];
}
}
return nr+1;
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
f>>n>>k;
for(int i=1; i<=n; i++)
f>>v[i];
int d = inf;
int Min = inf;
int s = 0;
while(s <= d)
{
int mij = s + (d-s)/2;
int ans = check(mij);
if(ans > k)
s = mij+1;
if(ans <= k)
{
if(mij < Min)
Min = mij;
d = mij-1;
}
}
g<<Min;
return 0;
}