Pagini recente » Cod sursa (job #1805617) | Cod sursa (job #2743069) | Cod sursa (job #1455528) | Cod sursa (job #1122974) | Cod sursa (job #2071463)
#include<fstream>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k,i,v[16000],s,l=0,nr=0,h=0,g=0,mij,f=0;
cin>>n>>k;
for(i=0;i<n;i++){cin>>v[i];f=f+v[i];}
s=*max_element(v,v+n);
mij=(s+f)/2;
while(h==0)
{
nr=0;
l=0;
for(i=0;i<n;i++)
{
l=l+v[i];
if(l>mij)
{
l=0;
nr++;
i--;
}
}
if(nr+1<k)
{
f=mij;
mij=(s+f)/2;
}
if(nr+1>k)
{
s=mij;
mij=(s+f)/2;
}
if(nr+1==k)
{
h=1;
}
}
while(g==0)
{
l=0;
nr=0;
for(i=0;i<n;i++)
{
l=l+v[i];
if(l>mij)
{
l=0;
nr++;
i--;
}
}
if(nr+1==k)
{
mij--;
}
else
{
mij++;
g=1;
}
}
cout<<mij;
}