Pagini recente » Cod sursa (job #172834) | Cod sursa (job #886892) | Cod sursa (job #3195614) | Cod sursa (job #2762569) | Cod sursa (job #792045)
Cod sursa(job #792045)
#include<stdio.h>
#include<stdlib.h>
int main()
{
//freopen("transport.in","r",stdin);
//freopen("transport.out","w",stdout);
FILE *f=fopen("transport.in","r"),*g=fopen("transport.out","w");
int n,k,*a,i,cap,max=0,s=0,nr,ok,aux;
fscanf(f,"%d %d",&n,&k);
a=malloc(n*sizeof(int));
for(i=0;i<n;i++)
{
fscanf(f,"%d",&a[i]);
if(a[i]>max) max=a[i];
s+=a[i];
}
if(s/k>max) cap=s/k;
else cap=max;
nr=0;ok=1;aux=cap;
while(ok)
{
if(aux-a[i]>=0) aux-=a[i];
else {nr++;
aux=cap-a[i];
}
if(nr>k) {cap++;
aux=cap;
i=0;
nr=0;
}
if(i==n-1) ok=0;
i++;
}
fprintf(g,"%d",cap);
fclose(f);
fclose(g);
return 0;
}