Pagini recente » Cod sursa (job #1634547) | Cod sursa (job #1152566) | Cod sursa (job #2453843) | Cod sursa (job #1660130) | Cod sursa (job #94776)
Cod sursa(job #94776)
#include<fstream.h>
ifstream f("transport.in");
ofstream g("transport.out");
int i,n,min,max,cap,gas,nr,s,k,p,a[16001];
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>a[i];
if(a[i]>min)
min=a[i];
max+=a[i];
}
s=s;
while(max-min>1)
{
cap=(min+max)/2;
nr=1;
s=0;
for(i=1;i<=n;i++)
if(s+a[i]>cap)
{
nr++;
s=a[i];
}
else
s+=a[i];
if(nr>k)
min=cap;
else
max=cap;
}
cap=(min+max)/2;
nr=1;
s=0;
for(i=1;i<=n;i++)
if(s+a[i]>cap)
{
nr++;
s=a[i];
}
else
s+=a[i];
if(nr==k)
g<<cap;
else
{
nr=1;
s=0;
for(i=1;i<=n;i++)
if(s+a[i]>min)
{
nr++;
s=a[i];
}
else
s+=a[i];
if(nr==k)
g<<min;
else
g<<max;
}
f.close();
g.close();
return 0;
}