Pagini recente » Cod sursa (job #1935575) | Cod sursa (job #2034309) | Cod sursa (job #156033) | Cod sursa (job #409699) | Cod sursa (job #931614)
Cod sursa(job #931614)
#include <stdio.h>
#include <fstream.h>
long a[16010],n,kk,poz;
long nr=0;
long S,max=0;
void citire()
{
ifstream fin("transport.in");
fin>>n>>kk;
for (int i=0;i<n;i++)
{ fin>>a[i];
S+=a[i];
max=max>a[i]?max:a[i];
}
a[n]=99999999;
fin.close();
}
long parc ()
{
while (max<=S)
{
int m=(max+S)/2;
int S1=0;
int tra=0;
for (int i=0;i<n;i++)
{
S1=S1+a[i];
if (S1+a[i+1]>m)
{
tra++;
S1=0;
}
}
if (tra<=kk)
{
poz=m;
S=m-1;
}
else
{
max=m+1;
}
}
return poz;
}
int main ()
{
citire();
freopen ("transport.out","w",stdout);
printf("%ld\n",parc());
fclose(stdout);
return 0;
}