Pagini recente » Cod sursa (job #1668176) | Cod sursa (job #2236237) | Cod sursa (job #1700206) | Cod sursa (job #2463383) | Cod sursa (job #780866)
Cod sursa(job #780866)
#include<iostream>
#include<fstream>
using namespace std;
int n,k,i,x[16005],sp,mij,s,nrpasi;
int posibil(int suma)
{
i=1;
nrpasi=0;
while(i<=n)
{
sp=0;
while(sp+x[i]<=suma&&i<=n)
{
sp+=x[i];
i++;
}
if(sp==0)
i=n+5;
else
nrpasi++;
}
if(i==n+5||nrpasi>k)
return 0;
return 1;
}
void cautare(int inc,int sf)
{
if(inc<=sf)
{
mij=sf+inc;
mij=mij/2;
if(posibil(mij)==1)
cautare(inc,mij-1);
else
cautare(mij+1,sf);
}
else
printf("%d",inc);
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d\n",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",&x[i]);
s+=x[i];
}
cautare(1,s);
return 0;
}