Pagini recente » Cod sursa (job #3224134) | Cod sursa (job #1679890) | Cod sursa (job #1706079) | Cod sursa (job #1093774) | Cod sursa (job #2065658)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k;
int v[16005];
bool verif(int C)
{
int s=0,i,pasi=0;
for(i=1;i<=n;i++)
{
if(v[i]>C || pasi>k) return 0;
if(s+v[i]<=C) s+=v[i];
else
{
pasi++;
s=v[i];
}
}
pasi++;
if(pasi<=k) return 1;
return 0;
}
int main()
{
int st=1,dr=100000000,cap;
int i;
fin>>n>>k;
for(i=1;i<=n;i++) fin>>v[i];
while(st<=dr)
{
cap=(st+dr)/2;
if(verif(cap)==1) dr=cap-1;
else st=cap+1;
}
fout<<st;
}