Pagini recente » Cod sursa (job #505229) | Cod sursa (job #895593)
Cod sursa(job #895593)
#include <iostream>
#include <cstdio>
using namespace std;
int s[16001],k,n;
int ok(int x)
{
int y=0,i=1,r=0;
while(y<=x && i<=n && r<k)
{
if(y+s[i]<=x) y+=s[i];
else
{
y=0;
r++;
i--;
}
i++;
}
if(i>n)
return 1;
return 0;
}
int main()
{
int li=0,lf=0,m,i,z;
FILE *fin=fopen("transport.in","r"),
*fout=fopen("transport.out","w");
fscanf(fin,"%d%d",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(fin,"%d",&s[i]);
if(li<s[i]) li=s[i];
lf+=s[i];
}
while(li<=lf)
{
m=(li+lf)/2;
if(ok(m))
{
z=m;
lf=m-1;
}
else li=m+1;
}
fprintf(fout,"%d",z);
return 0;
}