Pagini recente » Cod sursa (job #794950) | Cod sursa (job #719525) | Cod sursa (job #829296) | Cod sursa (job #1302716) | Cod sursa (job #895677)
Cod sursa(job #895677)
#include <cstdio>
#include <iostream>
using namespace std;
int n,k,v[16005];
int duba(int vol)
{
int s, pas=0,i=1;
while(i<=n)
{
s=0;
while(i<=n && s+v[i]<=vol) s+=v[i++];
pas++;
}
return pas;
}
int cb(int ls, int ld)
{
int m;
while(ls < ld)
{
m=(ls+ld)/2;
if(duba(m)>k) ls=m+1;
else ld=m-1;
}
return ls;
}
int main()
{ int i;
FILE *fin=fopen("transport.in","r"),
*fout=fopen("transport.out","w");
fscanf(fin, "%d %d", &n, &k);
int ls=0, ld=0;
for(i=1;i<=n;i++)
{ fscanf(fin,"%d",&v[i]);
ld+=v[i];
if(v[i]>ls)
ls=v[i];
}
k=cb(ls, ld);
fprintf(fout,"%d",k);
return 0;
}