Pagini recente » Cod sursa (job #3186346) | Cod sursa (job #897950) | Cod sursa (job #1660593) | Cod sursa (job #2260994) | Cod sursa (job #312397)
Cod sursa(job #312397)
#include<fstream.h>
int main()
{int cs=0,max=0,i,in,n,k,v[16001];
long v2[1100000];
ifstream q("transport.in");
ofstream w("transport.out");
q>>n>>k;
int s=0,nd=k+1;
for(i=1;i<=n;i++)
{q>>v[i];
if(max<v[i])
max=v[i];
s=s+v[i];}
i=0;
while(max<=s)
{i++;
v2[i]=max;
cs++;
max++;}
s=cs*2;
int nc,pos=0;
while(pos==0)
{s=s/2;
in=0;
if(s%2==0)
nc=v2[s/2];
else
nc=v2[s/2+1];
nd=0;
for(i=1;i<=n;i++)
if(in+v[i]<=nc)
in=in+v[i];
else
{nd++;
in=0;
i--;}
if(nd>=k)
for(i=1;i<=s/2;i++)
v2[i]=v2[s/2+i];
if(s==1)
pos=1;}
if(nd+1<=k)
w<<v2[1];
else
w<<v2[1]+1;
return 0;}