Pagini recente » Cod sursa (job #2646963) | Cod sursa (job #949668) | Cod sursa (job #2861716) | Cod sursa (job #2818050) | Cod sursa (job #2358754)
#include <bits/stdc++.h>
#define MAXIM 16005
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long long int n,v[MAXIM],k,m,i,val=1,nr;
bool transport(int x)
{
long aux=0,nr=0,i;
for(i=1;i<=n;i++)
{
if(v[i]>x)
return 0;
if(v[i]>aux)
{
nr++;
aux=x;
}
aux-=v[i];
}
if(nr<=k)
return 1;
else
return 0;
}
int cautbin()
{
int mij=0,st=1,dr=MAXIM*MAXIM,minim=-1;
while(st<=dr)
{
mij=(dr-st)/2+st;
if(transport(mij)!=0)
{
minim=mij;
dr=mij-1;
}
else st=mij+1;
}
return minim;
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
g<<cautbin();
return 0;
}