Pagini recente » Cod sursa (job #617294) | Cod sursa (job #1397186) | Cod sursa (job #1428171) | Cod sursa (job #2207684)
#include <iostream>
#include <cstdio>
using namespace std;
int v[16010];
int main()
{
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
int n,i,s,medie,maxx,maxx_zile,pp,nrzile,ok,c,cmedie;
unsigned long long zile;
cin>>n>>zile;
s=0;
maxx_zile=0;
for (i=1; i<=n; i++)
{
cin>>v[i];
s=s+v[i];
if (v[i]>maxx_zile)
maxx_zile=v[i];
}
if (s%zile==0)
medie=s/zile;
else
medie=s/zile+1;
if (maxx_zile>medie)
medie=maxx_zile;
if (medie>50)
c=medie/50;
else
c=1;
pp=0;
cmedie=medie;
while (pp==0)
{
i=1;
maxx=0;
nrzile=0;
ok=0;
while (i<=n && ok==0)
{
s=0;
while (s+v[i]<=medie && i<=n)
{
s=s+v[i];
i++;
}
if (s>maxx)
maxx=s;
nrzile++;
if (zile<nrzile)
ok=1;
}
if (ok==1)
cmedie=medie,medie=medie+c;
else
if (c==1)
pp=1;
else
{
c=1;
medie=cmedie;
}
}
cout<<maxx;
return 0;
}