Pagini recente » Cod sursa (job #1069258) | Cod sursa (job #1671825) | Cod sursa (job #343062) | Cod sursa (job #1109211) | Cod sursa (job #2407174)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,a[16001],s[16001],i,gr_max,st,stt,dr,c,mij,maxx;
int main()
{
in>>n>>k;
for (i=1; i<=n; ++i)
{
in>>a[i];
s[i]+=a[i]+s[i-1];
gr_max=max(gr_max,a[i]);
}
if (k==1)
out<<s[n]<<"\n";
else if (k>=n)
out<<gr_max<<"\n";
else
{
i=gr_max;
while (i<=16000)
{
st=1;
stt=0;
c=0;
maxx=0;
while (c<k)
{
mij=0;
dr=n;
while (st<dr)
{
mij=(st+dr+1)/2;
if (s[mij]-s[stt]>i)
dr=mij-1;
else
st=mij;
}
maxx=max(maxx,s[dr]-s[stt]);
stt=dr;
st=dr+1;
c++;
}
if (maxx==i && dr==n)
{
out<<maxx<<"\n";
break;
}
i++;
}
}
}