Pagini recente » Cod sursa (job #418467) | Cod sursa (job #2927449) | Cod sursa (job #1897417) | Cod sursa (job #1456050) | Cod sursa (job #1925469)
#include <cstdio>
using namespace std;
int v[16005];
int n,k;
bool verif(int x)
{
/*int j=0;
for(int i=1;i<=k;++i)
{
int s=v[j];
while(s<=x){
s+=v[++j];
if(j>=n)
{
if(s<=x||i<k)
return 0;
else
return 1;
}
}
}
return 1;*/
int cc=0,nr=0;
for(int i=1;i<=n;++i)
{
if(v[i]>cc)
{
++nr;
cc=x;
}
if(v[i]>cc)
return 1;
cc-=v[i];
if(nr>k)
{
return 1;
}
}
return 0;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int rez,pas;
scanf("%d %d",&n,&k);
for(int i=1;i<=n;++i)
{
scanf("%d",&v[i]);
}
pas=1<<28;
rez=0;
while(pas>0)
{
if(verif(rez+pas))
rez+=pas;
pas/=2;
}
printf("%d",rez+1);
return 0;
}