Pagini recente » Cod sursa (job #2726247) | Cod sursa (job #2000799) | Cod sursa (job #367929) | Cod sursa (job #989918) | Cod sursa (job #211949)
Cod sursa(job #211949)
#include <stdio.h>
int v[16000],n,nrt,c,max;
void citire()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&nrt);
for (int i=1; i<=n; i++)
{
scanf("%d",&v[i]);
if (v[i]>max)
max=v[i];
}
}
int calcul(int q)
{
int s=0,nr=0,i=1;
while(i<=n)
{
if(s+v[i]<=q)
{
s+=v[i];
i++;
}
else
{
nr++;
s=0;
}
}
nr++;
return nr;
}
void cautbin()
{
int st,dr,m;
st=max; dr=256000000;
while (st!=dr)
{
m=(st+dr)/2;
printf("%d %d %d\n",st,dr,calcul(m));
if (calcul(m)>nrt)
st=m+1;
else
dr=m;
}
printf("%d ",st);
}
int main()
{
citire();
cautbin();
}