Pagini recente » Cod sursa (job #2133399) | Cod sursa (job #1460538) | Cod sursa (job #1481630) | Cod sursa (job #1178828) | Cod sursa (job #2207715)
#include <iostream>
#include <cstdio>
using namespace std;
int v[16010];
int saltele(int mijl,int v[16010],int n,int transporturi)
{
int i,nr_trans,pp,s;
i=1;
nr_trans=0;
pp=0;
while (i<=n && pp==0)
{
s=0;
while (s+v[i]<=mijl && i<=n)
{
s=s+v[i];
i++;
}
nr_trans++;
if (nr_trans>transporturi)
pp=1;
}
if (pp==0)
return 0;
else
return 1;
}
int main()
{
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
int n,transporturi,s,maxx,st,dr,i,mijl,elem;
cin>>n>>transporturi;
s=maxx=0;
for (i=1; i<=n; i++)
{
cin>>v[i];
s=s+v[i];
if (v[i]>maxx)
maxx=v[i];
}
st=maxx;
dr=s;
while (st<=dr)
{
mijl=(st+dr)/2;
if (saltele(mijl,v,n,transporturi)==1)
st=mijl+1;
else
{
dr=mijl-1;
elem=mijl;
}
}
cout<<mijl;
return 0;
}