Pagini recente » Cod sursa (job #2690720) | Cod sursa (job #280108) | Cod sursa (job #638866) | Cod sursa (job #992772) | Cod sursa (job #453421)
Cod sursa(job #453421)
#include<stdio.h>
int saltele[16000],n,k;
int test(int cap)
{
int i,drum=1,sum=0;
for(i=0;i<n;i++)
{
sum=0;
while(sum<=cap)
sum+=saltele[i];
drum++;
}
if(drum<=k)
return 1;
return 0;
}
int main()
{
int i,suma=0,st,dr,mij,sol;
FILE *f=fopen("transport.in","r");
fscanf(f,"%i%i",&n,&k);
for(i=0;i<n;i++)
{
fscanf(f,"%i",saltele+i);
suma+=saltele[i];
}
fclose(f);
st=0;
dr=suma;
while(st<=dr)
{
mij=(st+dr)/2;
if(test(mij)==1)
{
dr=mij;
sol=mij;
}
else
st=mij+1;
}
f=fopen("transport.out","w");
fprintf(f,"%i\n",sol);
fclose(f);
return 0;
}