Pagini recente » Cod sursa (job #2980564) | Cod sursa (job #2045602) | Cod sursa (job #2277966) | Cod sursa (job #3236554) | Cod sursa (job #95598)
Cod sursa(job #95598)
#include <cstdio>
#define INF "transport.in"
#define OUF "transport.out"
#define NMAX 16384
int v[NMAX],n,k;
int alltrans(int vol)
{
int i,sum,c,ok;
c=k;sum=0;
i=1;ok=1;
while(i<=n&&c>0&&ok)
{
if(v[i]>vol) ok=0;
sum+=v[i];
if(sum>vol)
{
sum=0;
--c;
}
else ++i;
}
if(i<=n&&c==0) ok=0;
return ok;
}
int main()
{
int i,st,dr,mij,vmin;
FILE *in,*out;
in=fopen(INF,"r");
out=fopen(OUF,"w");
fscanf(in,"%d%d",&n,&k);
for(i=1;i<=n;++i) fscanf(in,"%d",v+i);
/*printf("vol camionului:");scanf("%d",&mij);
printf("%d",alltrans(mij));
scanf("%d",&i);*/
st=1;dr=1<<14;vmin=dr;
while(st<=dr)
{
mij=(st+dr)/2;
if(alltrans(mij))
{
vmin=mij;
dr=mij-1;
}
else st=mij+1;
}
fprintf(out,"%d\n",vmin);
fclose(in);fclose(out);
return 0;
}