Pagini recente » Cod sursa (job #209168) | Cod sursa (job #1354907) | Monitorul de evaluare | Cod sursa (job #2353826) | Cod sursa (job #1113220)
#include <cstdio>
using namespace std;
int main()
{freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
int n,k,c,aux,smic,suma=0,max=0;
scanf ("%d%d",&n,&k);
int v[16001];
for (int i=1;i<=n;i++)
{scanf("%d",&v[i]);suma+=v[i];
if (max<v[i])
max=v[i];}
if (max>suma/k)
c=max;
else c=suma/k;
int ok=0;
while (ok==0)
{smic=0;aux=0;
for (int i=1;i<=n;i++)
{if(smic+v[i]<=c)
smic+=v[i];
else {smic=v[i];aux++;}}
if(smic<c)
aux++;
if (aux==k)
ok=1;
else c++;
}
printf("%d",c);
f.close();
g.close();
return 0;
}