Pagini recente » Cod sursa (job #2238260) | Cod sursa (job #2580770) | Cod sursa (job #1365503) | Cod sursa (job #2069394) | Cod sursa (job #1498663)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 16000
int v[MAXN];
int n, k;
inline int inc_camion(int c) {
int i=0, s, nr_trans=0;
while(i<n) {
s=0;
while(s<=c && i<n) {
s+=v[i];
i++;
}
nr_trans++;
}
return nr_trans;
}
int cautare_binara(int st,int dr) {
int mij, x;
while(dr-st>1) {
mij=(st+dr)/2;
x=inc_camion(mij);
if(x>k)
st=mij;
else
dr=mij;
}
return dr;
}
int main()
{
int s, max, i;
FILE *fi, *fo;
fi = fopen("transport.in", "r");
fo = fopen("transport.out", "w");
fscanf(fi, "%d%d", &n, &k);
s=0;
max=1;
for(i=0; i<n; i++) {
fscanf(fi, "%d", &v[i]);
s+=v[i];
if(v[i]>max)
max=v[i];
}
fprintf(fo, "%d", cautare_binara(max, s));
fclose(fi);
fclose(fo);
return 0;
}